Condividi:        

Importare file csv da internet

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Importare file csv da internet

Postdi paciola » 24/09/10 15:21

Ciao a tutti, mi chiamo Davide e sono un nuovo iscritto.
Sono stato indirizzato da Statix su questo forum in quanto ho un problema che non saprei proprio come risolvere e lui non poteva aiutarmi per mancanza di tempo.
Ho provato, prima di postare un nuovo topic, a verificare, tra quelli già aperti, se c'era una soluzione ad un problema simile al mio, ma non sono riuscito a trovarla. Per cui ne ho aperto uno nuovo, spero di non aver "cappellato"! :P

Il problema è questo e riguarda l'importazione di un archivio del superenalotto da un sito internet.
Mi spiego.
Sul sito "http://www.estrazionidellotto.com" c'è l'archivio delle estrazioni del superenalotto dal 1939; la dicitura dice : "Archivi del superenalotto dal 1939 in formato TXT", solo che quando clicco mi fa scaricare un file che si chiama "enaltxt.exe" che, una volta avviato, mi estrae 3 file : Enalotto.csv, Enalotto.dbf e Enaolotto.mdb.
Ora, il file Enalotto.csv è, in pratica, già in excel e andrebbe solo formattato un po' meglio, ma, a parte questo, volevo chiedere:
E' possibile fare tutto questo tramite una macro in modo che quando aprirò il mio software io possa aggiornare automaticamente l'archivio cliccando semplicemente su un pulsante?

Spero di essere stato chiaro e, nel caso ci sia qualche altro post dove è indicata una soluzione simile, non abbiate remore a suggerirmelo e me lo andrò a studiare.

Vi ringrazio molto.
A presto
Davide
paciola
Utente Junior
 
Post: 35
Iscritto il: 24/09/10 12:29

Sponsor
 

Re: Importare file csv da internet

Postdi Flash30005 » 24/09/10 16:27

Ciao Paciola e benvenuto nel Forum

Penso che quello che chiedi sia risolvibile ma non senza inconvenienti perché essendo queste fasi in sequenza:
1) scaricamento il file eseguibile (directory da definire)
2) scompattazione (directory da definire)
3) importazione del file (dalla directory definita)

obbliga chi realizza la macro a mettere dei controlli

1) se il file è stato scaricato completamente
2) se si è scompattato

altrimenti nell'importazione in excel il processo andrà in errore.

Avendo già da tempo affrontato problemi simili ti consiglio questa macro che potrai provare tu stesso
Codice: Seleziona tutto
Sub CreaArchDaWeb()

For a = 1939 To 2010

    Worksheets("Foglio1").Select
    Range("A1").Select
   
   
    With Selection.QueryTable
        .Connection = "URL;http://www.franknet.altervista.org/superena/" & a & ".HTM"
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
   
    UR1 = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
    UR2 = Worksheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
    Worksheets("Foglio1").Range("A1:L" & UR1).Select
    Selection.Copy
    Sheets("Foglio2").Select
    X = 2
    If UR2 = 1 Then X = 0
    Range("A" & UR2 + X).Select
    ActiveSheet.Paste
    Worksheets("Foglio1").Select
    Range("A1:L200").Select
    Selection.ClearContents
    Range("A1").Select
   ' If a = 2000 Then MsgBox " 2000"
    Next a
    Worksheets("Foglio2").Select
End Sub

Sub cancella()
Worksheets("Foglio2").Select
    UR2 = Worksheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
    For i = UR2 To 2 Step -1
        If Worksheets("Foglio2").Range("A" & i).Value = "" Or Worksheets("Foglio2").Range("A" & i).Value = "1°" Then Rows(i & ":" & i).Delete Shift:=xlUp
    Next i
End Sub


La prima (CreaArchDaWeb) importa nel foglio1 e archivia nel foglio2
la seconda (Cancella) toglie le righe vuote all'archivio trascritto su foglio2.

Fai sapere se ok
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Importare file csv da internet

Postdi paciola » 24/09/10 16:42

Ti ringrazio tantissimo Flash.
La proverò nel week end perchè ora non sono a casa.
Ti faccio sapere sicuramente.
Grazie ancora per la grossa mano.

Davide
paciola
Utente Junior
 
Post: 35
Iscritto il: 24/09/10 12:29

Re: Importare file csv da internet

Postdi paciola » 01/10/10 15:03

Ciao Flash
ho provato questa macro ma non riesco a farla funzionare.
Forse è meglio che al momento aggiorno le estrazioni manualmente, poi la proverò ancora cercando di adattarla meglio.
Grazie ancora per la cortesia.

Davide
paciola
Utente Junior
 
Post: 35
Iscritto il: 24/09/10 12:29

Re: Importare file csv da internet

Postdi Flash30005 » 01/10/10 22:29

Ok prova questo file
avrai il tuo archivio dal 1939 aggiornato ad oggi in meno di 15 secondi

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Importare file csv da internet

Postdi paciola » 03/10/10 19:54

Flash30005 ha scritto:Ok prova questo file
avrai il tuo archivio dal 1939 aggiornato ad oggi in meno di 15 secondi

ciao


Ciao Flash
mi dice file non disposnibile.
Sbaglio qlcs?
Davide
paciola
Utente Junior
 
Post: 35
Iscritto il: 24/09/10 12:29

Re: Importare file csv da internet

Postdi Flash30005 » 04/10/10 01:12

Sicuramente si!
Io l'ho scaricato dal link del post (anche se lo avevo, proprio per verificare eventuali errori)
l'ho aperto (si presenta il foglio1 con il comando Avvio)
premo su Avvio e dopo 15 secondi ho tutto l'archivio sul foglio2 senza fare alcuna altra operazione

L'unica cosa che mi viene in mente per il tuo non funzionamento è che hai configurato excel con le protezioni alle macro
se così metti l'opzione Bassa Protezione, chiudi excel e riapri il file

fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Importare file csv da internet

Postdi paciola » 04/10/10 07:42

Grazie Flash
funziona perfettamente. Sei un mito!!!!!!!

Grazie
Davide
paciola
Utente Junior
 
Post: 35
Iscritto il: 24/09/10 12:29

Re: Importare file csv da internet

Postdi maxmula » 04/10/10 08:10

... comunque per chi volesse scaricare dei file da internet via protocollo HTTP o FTP, c'è sempre la possibilità di usare il comando wget, che si può lanciare da inea di comando e di conseguenza anche tramite comando Shell di VBA.

Qualora, poi, ci fosse la necessità di attendere la fine del download prima di procedere col resto del programma, si può ricorrere alla routine ShellAndWait, di cui ebbi occasione di parlare qualche tempo fa (http://www.pc-facile.com/forum/viewtopic.php?p=494498#p494498)


Ciao!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Importare file csv da internet

Postdi abernaa » 28/01/11 12:59

:eeh:

ciao a tutti,

vorrei sapere se la routine "Sub CreaArchDaWeb()" inserita nel box sopra funziona anche nel caso di pagine web che richiedano per accedere all'area download una login e pw (definite e fisse e note a me) o se no cosa si può fare?

grazie mille
abernaa
Utente Junior
 
Post: 16
Iscritto il: 28/01/11 12:49

Re: Importare file csv da internet

Postdi maxmula » 28/01/11 14:55

Puoi provare ad accedere al sito con questa sintassi:

    http://username:password@www.indirizzo.dominio

dove al posto di username e password dovrai mettere i tuoi identificativi per fare login, ed al posto di www.indirizzo.dominio dovrai scrivere l'indirizzo del sito che intendi aprire.

Se ti funziona (non ne sono certo...) potresti essere a cavallo! ;)

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Importare file csv da internet

Postdi abernaa » 28/01/11 15:32

:cry: purtroppo non funziona, restituisce il seguente errore:

Impossibile trovare '(null)'. Assicurarsi che il percorso o l'indirizzo Internet sia corretto

su internet

e

Microsoft Excel Errore inprevisto

su Excel

dove ovviamente ho inserito la login e pw giusta che qui ometto per riservatezza e indirizzo e dominio(nel mio caso asp) dove indirizzo è del tipo xxxx.be/login/form

altre idee?

grazie mille in ogni caso
abernaa
Utente Junior
 
Post: 16
Iscritto il: 28/01/11 12:49

Re: Importare file csv da internet

Postdi Anthony47 » 28/01/11 23:53

Intanto benvenuto nel sito.
Come suggerimento per il quesito posto: prima esegui il login al sito, poi usi le macro.
Se hai una certa abilita' col vba potresti provare a cercare l' oggetto che viene usato per inviare login e password e gestirlo; queste prestazioni sono rese disponibili inserendo un riferimento a Microsoft Internet Controls (Menu /Strumenti /Riferimenti).

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Importare file csv da internet

Postdi abernaa » 31/01/11 14:26

Ciao,

grazie mille, potresti mandarmi il codice tipo con cui esuguire/attivare questa ricerca?

grazie

abernaa
abernaa
Utente Junior
 
Post: 16
Iscritto il: 28/01/11 12:49

Re: Importare file csv da internet

Postdi Anthony47 » 31/01/11 16:09

Mi dici, in una scala da 1 a 10, il tuo livello di abilita' col vba?

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Importare file csv da internet

Postdi Anthony47 » 31/01/11 16:33

Comunque e' un argomento a cavallo tra programmazione html e vba, su cui la mia abilita' e' limitata; tra i pochi sviluppi che ho fatto c' e' questa macro per generare traduzioni automatiche tramite google translator:
viewtopic.php?t=89009#p506697

E un' altra macro che non ho scoperto dove l' avevo pubblicata per fare una google search:
Codice: Seleziona tutto
Sub GSearch ()
    'google search via vba - macro for google search
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate "http://www.google.it"
        Do Until .ReadyState = 4: DoEvents: Loop
        Set myTextField = .Document.All.Item("q")
        myTextField.Value = "eseguire login a sito tramite vba"   '<< le parole da cercare
'        IE.Document.Forms("f").Submit
ie.Document.All.Item("btnG").Click 'clicks the button named "btng" which is google's "google search" button

        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
'        Set doc = ie.Document
'        .Quit
    End With
End Sub


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Importare file csv da internet":


Chi c’è in linea

Visitano il forum: papiriof, raimea e 67 ospiti