posts - 30, comments - 0, trackbacks - 4

Query Web con Excel

Navigando avanti e indietro sul web capita di imbattersi in dati interessanti, allora un bel copia e incolla nella nostra applicazione preferita, ed ecco che abbiamo a disposizione la base per fare analisi, report ec. ec.

            Ma se noi volessimo ripetere con regolarità l’importazione dei dati?

I comuni mortali ripeteranno prolissamente l’operazione, noi che invece vogliamo prendere il sole (cosa centra? Niente ma con il tempo che risparmiamo possiamo andare prima al mare) ,addestreremo il nostro fidato excel per fargli compiere al nostro posto l’operazione.

E allora semplice creiamo una Query Web

 

            Come si fa? Come lo potete leggere nell’allegati 1 che potete scaricare a questo indirizzo:

 

http:\\www.rifici.it/public/Articolo ImportaEstrazioniSuperenalottoAllegato1.doc

 

 

L’esempio lo trovate nel file:

 

http:\\www.rifici.it/public/ScaricaEstrazioniSuperenalottoAnno2007.xls

 

ma vediamo un po’ di codice, basta seguire i commenti per comprendere il funzionamento.

 

Option Explicit

Private Sub ScaricaEstrazioni_Click()

'Dichiariamo le variabili notare che ogni nome è preceduto dal tipo di variabile

Dim ST_FileOutput As String

Dim ST_StringaDaScrivere As String

Dim CU_NumeroRiga As Currency

Dim CU_A As Currency

Dim BO_Pari As Boolean

Dim ST_Grigio As String

 

' Togliamo tutte le formattazione da tutto il foglio

 

Columns("A:D").Select

Selection.EntireColumn.Hidden = False

Columns("L:M").Select

Selection.EntireColumn.Hidden = False

 

    Rows("4:250").Select

    Selection.ClearContents

    Selection.Interior.ColorIndex = xlNone

   

' Ci posizionamo nella cella A4

    Range("A4").Select

' Facciamo eseguire la query che avevamo impostato vedi allegato 1

    Selection.QueryTable.Refresh BackgroundQuery:=False

' formattiamo un pochino

    Range("J1:K1").Select

    Range("K1").Activate

    Columns("E:E").ColumnWidth = 4.43

    Range("A4").Select

' già che ci siamo formattiamo la pagino tipo carta a lettura facilitata

For CU_A = 50 To 4 Step -1

If Cells(CU_A, 1) > 0 Then

CU_NumeroRiga = CU_A

Exit For

End If

Next CU_A

BO_Pari = True

 

For CU_A = 3 To CU_NumeroRiga

ST_Grigio = "A" & CU_A & ":N" & CU_A

 

BO_Pari = Not BO_Pari 'Alterna Pari e Dispari

If BO_Pari Then

 

Range(ST_Grigio).Select

With Selection.Interior

.ColorIndex = 15

.Pattern = xlSolid

End With

End If

'----------------------------------------------------------------------

' Nascondiamo le colonne che non sono necessarie

    Columns("B:C").Select

    Selection.EntireColumn.Hidden = True

    Columns("L:M").Select

    Selection.EntireColumn.Hidden = True

    Columns("N:N").ColumnWidth = 11.86

 

'-----------------------------------------------------------------------

' esportiamo il contenuto nel file di testo, ma questa parte l'abbiamo gia vista quindi non stò a ripetermi.

 

Next CU_A

Range("A4").Select

Range("A4").Activate

MsgBox " Sono presenti " & CU_NumeroRiga - 3 & " estrazioni "

ST_FileOutput = Application.GetSaveAsFilename("EstrazioniSupernalotto2007.csv", fileFilter:="Text Files (*.csv), *.csv")

 

Open ST_FileOutput For Output As #1 'Apriamo il file in cui scrivere i risultati.

' Scriviamo le 1 riga d'intestazione.

Print #1, "CONCORSO;DATA;I;II;III;IV;V;VI;Jolly;SUPERSTAR"

For CU_A = CU_NumeroRiga To 4 Step -1

ST_StringaDaScrivere = ""

ST_StringaDaScrivere = Cells(CU_A, 1) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 4) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 5) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 6) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 7) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 8) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 9) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 10) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 11) & ";"

ST_StringaDaScrivere = ST_StringaDaScrivere & Cells(CU_A, 14) & ";x"

Print #1, ST_StringaDaScrivere

 

Next CU_A

'chiudiamo il file generato

Close #1

' educatamente avviamo di aver finito

 

    MsgBox " Ho finito di esportare i dati nel file " & ST_FileOutput

End Sub

 

Alla prossima.

Calogero?>

posted on lunedì 30 aprile 2007 18.25