Risolto Importazione CSV

G.Bove

Utente assiduo
1 Ottobre 2015
1.044
38
Milano
2010
1
Buon Anno a tutti,
ho un file con estensione CSV da importare che ha un comportamento anomalo.
In pratica, L'importazione in "provaimport.xlsm"avviene correttamente ossia splittata su 14 colonne (con "DV.csv" aperto in precedenza):
Codice:
Sub CSVarrive()
    Windows("DV.csv").Activate
    Range("A1:N20000").Select
    Selection.Copy
    Windows("provaimport.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.DisplayAlerts = False 'inibisco avviso salvataggio del file sorgente
    Windows("DV.csv").Close
    
End Sub
Ma se provo ad aprirlo da macro, il risultato ottenuto è l'aggregazione dei vari dati in solo 2 colonne:
Codice:
Sub CSVarrive()
 Workbooks.Open Filename:="C:\ImportCSV\DV.csv" '<== percorso
 Sheets("DV").Select

   ' Windows("DV.csv").Activate
    Range("A1:N20000").Select
    Selection.Copy
    Windows("provaimport.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.DisplayAlerts = False 'inibisco avviso salvataggio del file sorgente
    Windows("DV.csv").Close
    
End Sub

Cosa sbaglio?


Grazie in anticipo
Gene
 

Allegati

cromagno

Excel/VBA Expert
Supermoderatore
9 Agosto 2015
7.697
245
41
Sardegna
2019 (32 bit)
412
Ciao,
il VBA non usa le "impostazioni Locali" come default, quindi devi specificarlo.

Aggiungi quello in rosso:

Codice:
Sub CSVarrive()
Workbooks.Open Filename:="C:\ImportCSV\DV.csv"[COLOR=#ff0000], Local:=True[/COLOR] '<== percorso
Sheets("DV").Select

    'Windows("DV.csv").Activate
    Range("A1:N20000").Select
    Selection.Copy
    Windows("provaimport.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.DisplayAlerts = False 'inibisco avviso salvataggio del file sorgente
    Windows("DV.csv").Close
    
End Sub
 

G.Bove

Utente assiduo
1 Ottobre 2015
1.044
38
Milano
2010
1
Ciao Tore,
grazie e RISOLTO.

Per capire: Perchè è necessario l'impostazione locale?

Gene

PS Ciao Mario...grazie al nuovo avatar...ora hai anche un volto:gongolo:.
 

klingklang

Excel/Power BI Expert
Staff
20 Ottobre 2017
6.567
345
44
San Giovanni in Persiceto (BO)
www.mondobi.it
2016, 365
535
Prova ad aggiungere

Codice:
, Local:=True
in coda al comando Workbooks.Open, quindi:

Codice:
Workbooks.Open Filename:="C:\ImportCSV\DV.csv"[B][COLOR="#FF0000"], Local:=True[/COLOR][/B] '<== percorso
Fai sapere Saluto_saluto

EDIT: dallo smartphone sono ancora più lento YesYesYes
 

cromagno

Excel/VBA Expert
Supermoderatore
9 Agosto 2015
7.697
245
41
Sardegna
2019 (32 bit)
412
Per capire: Perchè è necessario l'impostazione locale?
In parole povere...
I file CSV non sono strutturati "di base" come i file excel (i delimitatori intendo) ma se ne apri uno con excel, le impostazioni del file CSV prenderanno quelle standard di excel; mentre nel caso di apertura del file CSV tramite VBA, le impostazioni del file CSV non saranno modificate a quelle "locali" (cioè quelle che hai in excel) e ti ritroverai con "punti e virgola" come separatori di colonna ed altre "cose strane".
 
  • Like
Reactions: Robyprog

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!