Calogero Rifici diffondere la conoscenza del VBA.

Calogero_Rifici

My Links

Categorie Post

Categorie Articoli

Archivio

Immagini

Blog Stats

excelVBA

Scarica Estrazioni SuperEnalotto con una query Web

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 a colazione ci nutriamo di brioches & caffè (cosa centra? Niente ma con il tempo che risparmiamo possiamo fare due colazioni) ,addestreremo il nostro excel per fargli compiere al nostro posto l’operazione.

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

 

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

 

in quest’altro file potete vedere un esempio; vengono importati i dati dal sito msn le quotazioni dei titoli Fiat:

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

 

Ma Vediamo qualcosa di più articolato. Qualche tempo fa avevo scritto un articolo su come “importare dati da un file .csv”, e per provare avevo creato una piccola applicazione che

 

  1. importava le estrazioni da un file .csv;
  2. li confrontava con i numeri che noi avevamo giocato;
  3. e infine ci comunicava in un file .txt se potevamo andare a fare il giro del mondo a spese della Sisal S.p.A. (purtroppo ancora niente)

 

Qualcuno mi ha scritto dicendomi ma dove trovo i file . csv con le estrazioni aggiornate?

Basta andare sul sito www.Sisal.it

Selezionare Giochi

Selezionare SuperEnalotto

Selezionare Estrazioni

Selezionare Archivio

Selezionare Il periodo (ho scritto sempre Selezionare per far capite come sia una modalità lunga e un tantino pallosetta).

A questo punto con un bel Ctrl + C e successivo Ctrl + V ci trovavamo con i dati pronti.

Ma perché la data e scritta in quel modo e perché e perché e perché. Dopo un discreto numero di perché e relative correzioni abbiamo i nostri dati disponibili.

            Una volta si può anche fare la seconda è già pesante la terza…………………

E allora semplice creiamo una Nuova query Web

 

L’esempio lo trovate nel file:

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

 

ma vediamo un po’ di codice

 

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("EstrazioniSupernalotto.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

 

 

Da questo link potete scaricare il file completo:

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

 

?>

posted on lunedì 19 giugno 2006 8.44