Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL Importare dati da file CVS

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

EXCEL Importare dati da file CVS

Postdi Francesco53 » 04/05/10 14:41

Buon giorno a tutti,
scarico un file con estensione CVS da internet, i dati del file, avrei la necessità di importarli in un altro
file Excel, ma anzichè il solito collegamento, desidererei tramite macro, importarli in un foglio come valori,
in modo da poter poi gestire il tutto col solo file di lavoro, visto che scarico il file una volta alla settimana e di
conseguenza in quel momento farei l'aggiornamento tra i due file.
Vorrei sapere se è possibile utilizzare una macro che svolga il prelievo dei dati e copi nel foglio di base gli stessi.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: EXCEL Importare dati da file CVS

Postdi ricky53 » 04/05/10 15:48

Caio,
prova con il registratore di macro: fai le operazioni che ti occorrono.
Dovrai adattare il codice ottenuto.

Inizia che poi ti si aiuta.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 04/05/10 16:34

Ciao Ricky,
avevo già provato con il registratore di macro, solo che ho questo problema:
quando eseguo manualmente e nel mentre registra, i dati li copia in ogni cella
con il giusto valore, quando invece lancio la macro, mi copia i dati in un unica
cella, separati dal punto e virgola, e quindi non riesce a trasportare i valori
per singola cella come servono a me.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi ricky53 » 04/05/10 16:59

Ciao,
invia la macro che hai registrato e vediamo di uscirne.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 04/05/10 18:22

Ciao Ricky,
questa è la macro che mi è stata creata con il registratore:
Codice: Seleziona tutto
Sub CopiaDati()
    Workbooks.Open Filename:= _
        "D:\Prova\archivio.csv"
    Range("A1:BD1000").Select
    Selection.Copy
    Windows("Foxrex.xls").Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E2").Select
    Application.CutCopyMode = False
End Sub

Rispetto al passaggio originale manuale durante la creazione (funziona bene a mano), la macro scrive
come ti ho detto, tutti i dati in unica cella separati dal ;.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi ricky53 » 04/05/10 19:07

Ciao,

per conferma:
1. tu apri manualmente il file "CSV"
2. i dati sono posizionati in colonne diverse senza che tu faccia nessuna azione quando apri il file
3, il separatore di campo è il "punto e vrigola"

Confermi?

Si può avere un file CSV di esempo, attenzione ai dati riservati.

per inviar eil file utilizza un servizio di file hosting free:

http://myfreefilehosting.com/
o
http://www.mediafire.com/

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 04/05/10 20:21

Rispondo subito alle tue tre domande:
1) Lo apro manualmente la prima volta che creo la macro, dopo è la macro che lo dovrebbe aprire.
2) Si, i dati sono posizionati in colonne diverse aprendolo da Excel, o doppio click sul file.
3) Si, il separatore di campo è il "punto e vrigola"
Appena posso ti invio un file di prova in CVS.
Saluti
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Anthony47 » 04/05/10 22:02

Secondo me non devi "Aprire" il file, ma farne una "Importazione": Menu /Dati /Importa dati esterni /Importa dati; come Tipo file scegli CSV, scegli la directory e il nome file, Apri; imposti "Delimitati", Avanti, spunti Punto-e-virgola, Avanti, imposti il formato delle singole colonne, Fine.
Se cosi' riesci a ottenere quello che cerchi, allora registra una macro mentre esegui l' importazione (eventualmente dopo lo step 3 di 3 premi "Proprietà" e togli la spunta a Salva definizione query). In questo modo per importare i dati bastera' rieseguire la macro registrata.

Fai sapere se cosi' risolvi, ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 05/05/10 08:52

Ciao Anthony,
il tuo suggerimento è perfetto, tutto come desideravo.
Ringrazio te e Ricky per la vostra disponibilità.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 06/05/10 14:15

Un saluto a tutto il Forum,
scusate se torno sull'argomento, volevo solo chiedere una informazione a chi può aiutarmi ulteriormente,
il mio problema è questo: La macro è perfetta, l'unica cosa che vorrei poter modificare è quella che la stessa
ricerchi il file CVS, direttamente nella SubDirectory \Temp. allego parte del files dove potete vedere come la
macro cerchi un riferimento preciso, per cui se sposto il file in altra Directory o Computer non rileva e si ferma.
Codice: Seleziona tutto
Sub CopiaDati()

Application.GoTo Reference:="DatiArchivio"
    Application.ScreenUpdating = False
    Range("C2:AZ1000").Select
    Selection.ClearContents
   
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\Temp\archivio.csv", _
        Destination:=Range("C2:BF7000"))
        .Name = "archivio"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False

Questo è il passaggio che vorrei correggere:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\Temp\archivio.csv",
D:\Francesco\Temp\archivio.csv
se fosse possibile che ricerchi direttamente il file su \Temp\ visto che la si crea la subdirectory
quando sompatto il file. Grazie a chi può aiutarmi.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Flash30005 » 06/05/10 18:49

Non è molto chiaro questo passaggio...

Francesco53 ha scritto:Questo è il passaggio che vorrei correggere:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\Temp\archivio.csv",
D:\Francesco\Temp\archivio.csv
se fosse possibile che ricerchi direttamente il file su \Temp\ visto che la si crea la subdirectory



Questo file sta in D:\Temp e non in D:\Francesco\Temp?

qual'è il problema?

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 06/05/10 19:04

Ciao Flash,
la directory Temp, la crea il files .EXE che contiene l'Archivio.CVS,
io in D:\Francesco ho il files Excel che utilizza i dati dal file Archivio che si trova nella directory D:\Francesco\Temp
Ora se io sposto il file (Es.: in C:\Contributi) il file Excel scarica da internet il file Archivio.exe, lo scompatta e lo
ritrovo nella directory \Temp che si trova in base all'esempio in C:\Contributi\Temp\Archivio.CVS. Per cui
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\Temp\archivio.csv", _
non trova il file. Ora io chiedevo se si poteva modificare in modo che conservasse la directory dove è il file, ed
andasse solo a cercare nella subdirectory \Temp.
Esempio inventato per far capire:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;\*\Temp\archivio.csv", _
Spero di essere riuscito a far capire le mie necessità, perchè se sposto il file in altra directory o HardDisck
non funziona.
Ciao e grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Flash30005 » 06/05/10 19:20

Quale versione di office hai?

perché con office 2003 puoi usare la funzione file search (che manca nell'office 2007)

oppure puoi decidere di mettere il file eseguibile nella stessa directory del file di excel con macro
in una cella del foglio metterai questa formula

Codice: Seleziona tutto
=CELLA("nomefile";A1)

e avrai tutto il percorso della directory con il nome del file e del foglio che contiene formula

con un codice appropriato puoi togliere la parte della stringa che non ti interessa e avere solo il percorso della directory che contiene il file di excel e il file eseguibile
aggiungendo a questo percorso Temp\ otterrai la posizione del tuo file archivio

Fai sapere se è tutto ok
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 07/05/10 11:47

Ciao Flash,
Sono riuscito a far si che la prima macro estrae il file non più nella directory \Temp, ma nella
stessa directory di lavoro dove si trova il file Excel. Per la mia domanda:
Pensavo che ci potesse essere un comando
Es. Path\ che inserito nella macro al posto di:

With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\archivio.csv", _

potesse far leggere il file richiamato.
With ActiveSheet.QueryTables.Add(Connection:="TEXT; & Path\ archivio.csv", _
e che quindi si potesse copiare il file in qualsiasi directory e la macro funzioni senza
chiedere dove andare a trovare il file archivio.cvs.
Grazie ugualmente
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Flash30005 » 07/05/10 15:05

Certo che c'è la possibilità di inserire un Path
es. questa riga
Francesco53 ha scritto:With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Francesco\archivio.csv", _

va trasformata in
Codice: Seleziona tutto
Perc = "D:\Francesco\"
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Perc & "archivio.csv", _


Ma è chiaro che se continui a cambiare il percorso del file, dovrai aggiornare la variabile
Perc = "NuovoPercorso"

Per evitare di farlo manualmente ti avevo consigliato di utilizzare una cella del foglio di excel con le informazioni del file in B1 metterai:
Codice: Seleziona tutto
=CELLA("nomefile";A1)

(ovunque si trovi il file avrai sempre il percorso corretto) e quindi
Perc = Mid(Range("B1").text, ...., ....)

Altrimenti come pensi che una macro possa sapere dove vai ad inserire quel file?
(senza utilizzare la funzione del FileSearch che lo va a ricercare su tutto il disco)?

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 07/05/10 16:21

Grazie Flash delle tue indicazioni, avevo capito quello che dicevi, solo che mi domandavo,
se al posto di digitare io la directory di lavoro in A1, ci fosse una funzione che legge la directory di lavoro,
(dove si trova il file excel che è aperto e contiene la macro), eviterei di digitare io la directory di lavoro.
e quindi Perc = Mid(Range("B1").text, ...., ....) leggerebbe da solo la directory di lavoro, indipendentemente
dove io uso il file, come quando si salva un file, non ti chiede dove vuoi salvarlo, lo salva in automatico nella
sua directory. Non sò se sono riuscito a spiegare, comunque ti ringrazio per le risposte.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 07/05/10 17:09

Faccio un esempio:
se in una cella scrivo:
=AMBIENTE.INFO("directory")
mi restituisce:
C:\User\Francesco\Documents\
Quindi cercavo qualcosa che riuscisse a leggere la directory utilizzata.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Importare dati da file CVS

Postdi ricky53 » 07/05/10 19:48

Ciao,

se vuoi avere il percorso ove si trova il file XLS che hai aperto e sul quale stai eseguendo una macro puoi utilizzare:

Codice: Seleziona tutto
    Percorso_File_Attivo = ActiveWorkbook.Path



Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Importare dati da file CVS

Postdi Flash30005 » 07/05/10 20:49

ricky53 ha scritto:
Codice: Seleziona tutto
Percorso_File_Attivo = ActiveWorkbook.Path


Eccellente Ricky!!!

da oggi la userò anche io ;)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Importare dati da file CVS

Postdi Francesco53 » 07/05/10 21:01

Grazie a tutti, è quello che cercavo.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "EXCEL Importare dati da file CVS":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti