unire file .csv usando excel

Anonimo
2025-06-24T14:18:23+00:00

excel 2021

win 11

sto cercando di far funzionare questo codice

Sub UnisciCSVdaCartella()

Dim ws As Worksheet

Dim folderPath As String

Dim CartellaFIle As String

Dim fileName As String

Dim lastRow As Long

Dim isFirstFile As Boolean

Dim csvData As Workbook

Dim NomeFile As String

' Imposta la cartella contenente i CSV

folderPath = "miopercorso\FileDaUnire"

' Imposta la cartella dove salvare il file unito CSV

CartellaFile= "miopercorso\FileUnito"

If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"

Set ws = ThisWorkbook.Sheets(1)

ws.Cells.ClearContents

fileName = Dir(folderPath & "\*.csv")

isFirstFile = True

Do While fileName <> ""

    Set csvData = Workbooks.Open(folderPath & fileName)

    With csvData.Sheets(1)

        If isFirstFile Then

            .UsedRange.Copy ws.Cells(1, 1)

            isFirstFile = False

        Else

            lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1

            .UsedRange.Offset(1, 0).Resize(.UsedRange.Rows.Count - 1).Copy ws.Cells(lastRow, 1)

        End If

    End With

    csvData.Close False

    fileName = Dir()

Loop

' Definisci il nome del file

NomeFile = "nomefile.csv"

' Esporta il foglio attivo in formato CSV

ActiveSheet.SaveAs fileName:=CartellaFIle & NomeFile, FileFormat:=xlCSV, CreateBackup:=False

' Messaggio di conferma

MsgBox "files uniti correttamente - file esportato in formato CSV nella seguente cartella: " & CartellaFile& NomeFile, vbInformation

End Sub

ma non funziona.

io ho dei files .csv con campi uguali e devo unirli in un unico file.

unirli riesce poi ho provato ad aggiugere il saveas per salvarli nella cartella \miopercorso\fileunito ma non mi riesce farlo fare.

dove sbaglio?

grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda. Per proteggere la privacy, i profili utente per le domande di cui è stata eseguita la migrazione vengono resi anonimi.

0 commenti Nessun commento
{count} voti
Risposta accettata
  1. Eleuterio Tedeschi 17,870 Punti di reputazione Moderatore volontario
    2025-06-24T15:46:32+00:00

    Ti consiglio di usare Power Query per unirli e poi salvi la tabella risultante come csv.

    Per il codice in questa parte aggiungi il separatore tra posizione e nome del file e riprova, se sono corretti deve salvare il csv:

    ActiveSheet.SaveAs fileName:=CartellaFIle & "\" & NomeFile, FileFormat:=xlCSV, CreateBackup:=False
    

    Ciao.

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2025-06-25T09:14:36+00:00

    grazie per aver risolto il problema.

    unica pecca è che non riesco a chiudere l'istanza di excel

    ho provato sia con

    thisworkbook.close savechanges:=true

    objExcel.quit

    set objExcel = Nothing

    oppure application ecc

    ma niente, si chiude il foglio ma rimane aperta l'istanza

    poco male ma giusto per fare il pignolo :)

    0 commenti Nessun commento