Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Problema separatore file CSV con macro excel

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

Problema separatore file CSV con macro excel

Postdi pistri » 10/02/13 00:44

Ciao a tutti.

Ho un problemino che, con la funziona ricerca sembra gli altri abbiano risolto. Ma non io!

Ho fatto una macro che mi salva un foglio excel in formato csc.
Quando però vado ad aprirlo, il separatore è la , e non il ;

Se invece lo salvo manualmente, senza macro, tutto è ok.

Allego il codice:

Codice: Seleziona tutto
Sub csvmax()
'
' csvmax Macro
'

'
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Cells.Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:="C:\Spedire\spedire.csv", FileFormat _
        :=xlCSV, CreateBackup:=False, Local:=True
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Foglio1").Select
    ActiveWindow.SmallScroll Down:=6
    Range("D32").Select
End Sub
pistri
Utente Junior
 
Post: 34
Iscritto il: 11/10/11 21:47

Sponsor
 

Re: Problema separatore file CSV con macro excel

Postdi Flash30005 » 10/02/13 02:31

Hai provato a registrare una macro mentre salvi il file in Csv?
poi fermi la macro e vedi il codice, eventualmente la avvii di nuovo

in tal caso cosa succede?

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: Problema separatore file CSV con macro excel

Postdi Anthony47 » 10/02/13 10:36

Scusa, salvi in "comma separated values" e ti lamenti che i campi sono separati dal "comma"?
Comunque che versione /lingua di Excel usi?
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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema separatore file CSV con macro excel

Postdi pistri » 10/02/13 11:37

Cavolaccio, non lo so!
Ho provato a fare tutto il salvataggio, registrando una macro e richiamandola, ma il separatore mi diventa "," e non ";" come vorrei.
Mi basterebbe sapere solo come potere avere il mio file con saparatore ;
Uso Excel 2007 lingua Italiana.
Non penso che centri nulla perchè se io salvo manualmente il file CSV il separatore è ok (;) con la macro, con lo stesso procedimento, mi diventa invece (,).

Grazie a tutti.
pistri
Utente Junior
 
Post: 34
Iscritto il: 11/10/11 21:47

Re: Problema separatore file CSV con macro excel

Postdi pistri » 10/02/13 11:53

Ho trovato con la ricerca una macro che mi risolve il problema del ;
Me ne crea però un altro....
Ora le righe vuote selezionate nell'intervallo vengono mostrate con le celle vuote separate dal ;

Praticamente cosi.

dato1;dato2;dato3;
dato4;dato5;dato6;
;;;
;;;
;;;
;;;


Io non vorrei le righe in rosso ma solo quelle contenenti dati...

Allego il codice:

Codice: Seleziona tutto
Sub Csv_Export()
    DestFile = "C:\Users\x64\Desktop\csv.csv"
    FileNum = FreeFile()
    Set Rng = ActiveSheet.Range("A1:P6")
    Open DestFile For Output As #FileNum
    For R = 1 To Rng.Rows.Count
      For C = 1 To Rng.Columns.Count
         Print #FileNum, Rng.Cells(R, C).Text;
         If C = Rng.Columns.Count Then
              Print #FileNum,
         Else
              Print #FileNum, ";";
         End If
      Next C
    Next R
    Close #FileNum
End Sub
pistri
Utente Junior
 
Post: 34
Iscritto il: 11/10/11 21:47

Re: Problema separatore file CSV con macro excel

Postdi Anthony47 » 10/02/13 22:41

In effetti avrei dovuto chiederti quale e' il tuo "separatore di elenco" e non quale e' la tua lingua (ricordavo erroneamente che la lingua Inglese si porta dietro il separatore "virgola" mentre quella Italiana si portava il "punto-e-virgola")...
Comunque la strada che hai intrapreso, dove controlli nella macro quale separatore vuoi inserire, e' la piu' facile.
Per risolvere il problema residuo potresti modificare in
Codice: Seleziona tutto
Sub Csv_Export()
DestFile = " C:\Users\x64\Desktop\csv.csv "
FileNum = FreeFile()
Set Rng = ActiveSheet.Range("A1:C16")
Open DestFile For Output As #FileNum
For R = 1 To Rng.Rows.Count
    myLine = "": myLen = 0
    For C = 1 To Rng.Columns.Count
        myLine = myLine & Rng.Cells(R, C).Text & ";"
        myLen = myLen + Len(Rng.Cells(R, C).Text)
    Next C
    If myLen > 0 Then Print #FileNum, Left(myLine, Len(myLine) - 1)
Next R
Close #FileNum
End Sub

Fai sapere, 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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema separatore file CSV con macro excel

Postdi pistri » 10/02/13 22:52

Grazie, provo subito!
pistri
Utente Junior
 
Post: 34
Iscritto il: 11/10/11 21:47

Re: Problema separatore file CSV con macro excel

Postdi pistri » 10/02/13 23:14

Rieccomi.
Ho provato ma vedo ancora le celle vuote...
Stranamente però ho riprovato il metodo iniziale, senza selezionare il foglio, e sembra che tutto ora funzioni!

Riporto il cosice nel caso qualcuno ne avesse bisogno:
Codice: Seleziona tutto
Sub salva()
'
' salva Macro
'

'
Call copia_dati
    Sheets("spedire_LDV").Select
    ActiveWorkbook.SaveAs Filename:="C:\Spedire\spedire_LDV.csv", _
        FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    ActiveWorkbook.SaveAs Filename:="C:\Spedire\spedire_LDV.xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Sheets("Foglio1").Select
End Sub


Comunque la vostra disponibilità è ammirevole!
Grazie.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pistri
Utente Junior
 
Post: 34
Iscritto il: 11/10/11 21:47

Re: Problema separatore file CSV con macro excel

Postdi Anthony47 » 10/02/13 23:50

Il codice che ti ho dato scrive tutti i campi di una riga se almeno uno di essi e' presente; quindi potresti avere
a;b;c;d;;f
;;;;;f
Non dovresti invece avere righe tipo
;;;;;;

Hai avuto esperienza diversa? O avevi in mente una casistica diversa?

Nel formato nativo csv il separatore e' il "separatore di elenco" che viene ereditato dalle impostazioni internazionali del pc (credo); se hai l' obbligo del separatore ";" potresti avere sorprese su qualche macchina o in qualche circostanza (come mi pare ti sia gia' successo). Insomma io suggerirei di completare con la macro che avevi abbozzato.

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Problema separatore file CSV con macro excel":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti