Dividere un foglio di excel in più file separati

Come dividere un foglio Excel in più file separati in modo semplice e veloce

Dividere un file Excel in più fogli o più file separati è un’esigenza comune per chi lavora con grandi quantità di dati. Spesso si ha la necessità di suddividere un foglio Excel contenente molte righe in più file più piccoli, magari mantenendo le intestazioni di colonna originali. Questa operazione è particolarmente utile per:

Gestione di listini prezzi
Preparazione di file per importazioni di dati
Organizzazione di report e analisi

Strumenti per dividere un file Excel

Cercando su Google, si trovano numerosi strumenti e software per dividere file Excel, tra cui:

🔹 Utility specifiche per lo split di file Excel
🔹 Macro VBA per Excel personalizzate
🔹 Programmi di terze parti che offrono questa funzionalità

Tuttavia, molti di questi strumenti sono a pagamento o richiedono installazioni aggiuntive. La soluzione più efficiente e gratuita è creare una macro VBA personalizzata, che consente di automatizzare il processo direttamente in Excel.

Come creare una Macro VBA per dividere un file Excel

Ho trovato un buon esempio su questo forum, che ho migliorato per:

✔️ Gestire file con estensione .xlsx
✔️ Chiedere il file di input con il comando GetOpenFilename, basato sulla documentazione ufficiale Microsoft

Dividere un foglio di excel in più file separati

Per semplificare il lavoro, ho preparato un file Excel con la macro già creata e pronta all’uso. In alternativa, è possibile creare la macro manualmente seguendo questi passaggi:

1️⃣ Aprire Excel (funziona su tutte le versioni, anche se i menu possono variare leggermente).
2️⃣ Andare su Menù VISUALIZZAMACROVisualizza Macro.
3️⃣ Creare una nuova macro e incollare il codice VBA.
4️⃣ Eseguire la macro per dividere automaticamente il file Excel.

Da Excel (2007 nel mio caso ma dovrebbe funzionare anche per le altre versioni, magari cambia solo la posizione del menù e forse qualche sintassi):  Menù VISUALIZZA -> MACRO -> Visualizza Macro

Dividere un foglio di excel in più file separati

Digitiamo il nome che vogliamo assegnare alla macro e clicchiamo CREA

Dividere un foglio di excel in più file separati

Incolliamo il codice qui di seguito:

Public Sub separa_5000_righe_con_intestazioni_colonna()

    Dim inputFile As String, inputWb As Workbook
    Dim lastRow As Long, row As Long, n As Long
    Dim newCSV As Workbook
    
    inputFile = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx")
    
    Set inputWb = Workbooks.Open(inputFile)
    
    With inputWb.Worksheets(1)
        lastRow = .Cells(Rows.Count, "A").End(xlUp).row
        
        Set newCSV = Workbooks.Add
        
        n = 0
        For row = 2 To lastRow Step 5000
            n = n + 1
            .Rows(1).EntireRow.Copy newCSV.Worksheets(1).Range("A1")
            .Rows(row & ":" & row + 5000 - 1).EntireRow.Copy newCSV.Worksheets(1).Range("A2")
            
            'Save in same folder as input workbook with .xlsx replaced by (n).csv
            newCSV.SaveAs Filename:=Replace(inputWb.FullName, ".xlsx", "(" & n & ").csv"), FileFormat:=xlCSV, CreateBackup:=False
        Next
    End With
    
    newCSV.Close saveChanges:=False
    inputWb.Close saveChanges:=False
    
End Sub

In questo caso separiamo ogni 5000 righe e creiamo dei file CSV nella stessa cartella di provenienza del file.

Possiamo modificare questo comportamento impostando, ad esempio, un numero diverso di righe in tutti i punti dove compare 5000 nel codice.

Ho preparato il file scaricabile, lo zip contiene un semplice file excel con la macro già creata.

Excel row splitter macro

Naturalmente per poter eseguire la macro bisognerà attivare le macro di excel cliccando sul pulsante Opzioni che compare automaticamente:

Macro Excel per Dividere un foglio di excel in più file separati

Dopodichè sarà sufficiente dal Menù VISUALIZZA -> Macro -> Visualizza Macro:

Selezionare la macro, cliccare esegui e selezionare il file da dividere.

Conclusione

Utilizzare una macro VBA per dividere un file Excel è il metodo più pratico, veloce e gratuito per gestire grandi quantità di dati senza dover installare software aggiuntivi.

1 commento su “Dividere un foglio di excel in più file separati”

Lascia un commento