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?>