Durante la creazione di un file CSV utilizzando i menu per esportare un foglio di lavoro, Arkadiusz ha notato che può specificare che desidera utilizzare un punto e virgola (;)

come delimitatore di campo. Tuttavia, se salva un file CSV utilizzando una macro (FileFormat: = xlCSV o xlCSVWindows), non può specificare un punto e virgola come delimitatore.

Funziona in questo modo in base alla progettazione in VBA. L’implementazione Excel delle routine di esportazione per VBA utilizza sempre le impostazioni internazionali di Windows per determinare come separare gli elementi in un CSV.

In particolare, la routine esamina il campo Separatore elenco per il delimitatore. Ciò significa che è possibile, se lo si desidera, modificare il delimitatore in un punto e virgola modificando l’impostazione Separatore elenco nella configurazione delle impostazioni internazionali.

Se non vuoi modificare le impostazioni regionali, puoi invece scrivere la tua macro che produrrà il file nel modo che desideri.

Considera, per un momento, la seguente macro, che produrrà il file:

Sub CreateFile()

FName = ActiveWorkbook.Name     If Right(FName, 4) = ".xls" Then         FName = Mid(FName, 1, Len(FName) - 4)

End If

Columns(1).Insert Shift:=xlToRight

For i = 1 To Range("B65000").End(xlUp).Row         TempString = ""

For j = 2 To Range("HA1").End(xlToLeft).Column             If j <> Range("HA1").End(xlToLeft).Column Then                 TempString = TempString & _                   Cells(i, j).Value & ";"

Else                 TempString = TempString & _                   Cells(i, j).Value             End If         Next         Cells(i, 1).Value = TempString     Next

Columns(1).Select     Selection.Copy     Workbooks.Add     Range("A1").Select     ActiveSheet.Paste     Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=FName & ".txt", _       FileFormat:=xlPrinter End Sub

Questa macro ha un approccio univoco alla creazione del file di output. Quello che fa è inserire una colonna a sinistra del foglio di lavoro, quindi concatena tutti i dati a destra di quella colonna nella colonna A appena inserita. Aggiunge un punto e virgola tra ogni campo. Una volta fatto, acquisisce le informazioni che ha inserito nella colonna A e le scrive in una nuova cartella di lavoro. Questa cartella di lavoro viene quindi salvata su disco utilizzando il formato di file xlPrinter, il che significa che viene visualizzata “così com’è” senza alcuna modifica.

Se preferisci un approccio più diretto, scrivendo le informazioni direttamente su un file senza apportare modifiche al tuo foglio di lavoro, dai un’occhiata alla macro in questo post del blog:

https://web.archive.org/web/20060302021412/http:/www.dicks-blog.com:80/archives/2004/11/09/roll-your-own-csv/

La macro utilizza virgole tra ogni campo, ma può essere facilmente modificata in modo che utilizzi invece il punto e virgola.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (3232) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: