• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Excel tabbladen exporteren en opslaan als afzonderlijk bestand

Status
Niet open voor verdere reacties.

willem1984

Gebruiker
Lid geworden
12 dec 2003
Berichten
24
Beste,

Ik heb op zoek naar een marco waarmee ik alle tabbladen in mijn Excel workbook kan opslaan als seperate Excel files, met de naam van het tabblad als bestandsnaam.

Voorbeeldbestand is bijgevoegd (test. xlsx). Ik wil deze graag 'splitsen' in 3 afzonderlijke bestanden, met de naam
- tabblad 1.xls
- tabblad 2.xls
- tabblad 3.xls


Is hier een macro voor?

Ik heb overigens de Engelstalige versie van Excel, misschien goed om te weten.

dank alvast.

groet,
Willem
 

Bijlagen

Laatst bewerkt:
Zo:
Code:
Sub ExportSheets()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    For Each sh In ThisWorkbook.Sheets
        sh.Copy
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ActiveSheet.Name & ".xlsx", 51
        ActiveWorkbook.Close
    Next sh

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
 
Het is nooit een goed idee gelijksoortige gegevens in aparte bestanden op te slaan.
Het is nooit een goed idee gelijksooritge gegevens in aparte werkbladen op te slaan.
Het is gewenst gelijksoortige gegevens als een database ('dynamische tabel' in VBA: listobject) met de rijen als records en de eigenschappen van het record (genormalieerde tabel) in 1 werkblad op te slaan.
Daarna kun je naar hartelust, filteren, sorteren, berkeningen uitvoeren, draaitabellen maken, grafieken op de gegevens baseren, etc.
 
Zo:
Code:
Sub ExportSheets()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    For Each sh In ThisWorkbook.Sheets
        sh.Copy
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ActiveSheet.Name & ".xlsx", 51
        ActiveWorkbook.Close
    Next sh

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Dank voor je hulp, maar de macro werkt niet helemaal correct. Als ik de macro draai krijg ik alleen het 1e tabblad als output, echter bevat die de inhoud van tabblad 3. Heb je een andere suggestie?

Ik heb het bestand met de macro bijgevoegd.
 

Bijlagen

Werkte bij mij prima.
In je bijgevoegde document niet, vreemd.

Maak er dit van:
Code:
Sub ExportSheets()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    For Each sh In ThisWorkbook.Sheets
        shName = sh.Name
        sh.Copy
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & shName & ".xlsx", 51
        ActiveWorkbook.Close
    Next sh

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan