Sheets anhand Zellenliste erstellen

VBA und Makros
Codeschnipsel
Arbeitsblatt
Zellinhalte
Automatisierung
Erstellung
Excel

Ausgangslage - Was tut dieser Code-Schnipsel?

Erstellt neue Arbeitsblätter anhand einer Liste von Namen. Dabei wird je markierter Zelle ein Arbeitsblatt erstellt. Das Arbeitsblatt erhält den entsprechenden Zelleninhalt als Namen.

Der Quelltext

Option Explicit
Option Compare Text
' Original-Quelltext unter: https://www.online-vba.de/sheets-anhand-zellenliste-erstellen
' Express-Hilfe für VBA unter https://www.online-vba.de/vba-expresshilfe
' Es gelten die Nutzungsbedingungen von Online-VBA.de

' Verwendung: Markieren Sie einen Zellenbereich und starten Sie dieses Makro

Public Sub OVBAde_ArbeitsblaetterVonListeErstellen()
  Dim oZelle As Object
  Dim oNewSheet As Object
  Dim lSuccessCounter As Long
  Dim lErrCounter As Long
    
    If Workbooks.Count < 1 Then Exit Sub
    lErrCounter = 0
    lSuccessCounter = 0
    
    'Sicherheitsabfrage
    If MsgBox("Sind Sie sicher, dass Sie " & Selection.Cells.Count & _
               " neue und leere Arbeitsblätter erstellen wollen?", _
               vbExclamation + vbYesNo, "HINWEIS!") = vbYes Then
        
        On Error Resume Next
        For Each oZelle In Selection.Cells
            If Trim(CStr(oZelle.Value)) <> "" Then
                Set oNewSheet = ActiveWorkbook.Sheets.Add(after:=Sheets(Sheets.Count))
                oNewSheet.Name = Trim(CStr(oZelle.Value))
                If Err.Number <> 0 Then
                    Err.Number = 0
                    Err.Clear
                    Application.DisplayAlerts = False
                    oNewSheet.Delete
                    Application.DisplayAlerts = True
                    lErrCounter = lErrCounter + 1
                Else
                    lSuccessCounter = lSuccessCounter + 1
                End If
            End If
        Next oZelle
        On Error GoTo 0
        
        If lErrCounter <> 0 Then
            MsgBox lErrCounter & " Arbeitsblätter konnten nicht erstellt werden, " & _
            "da ihr Name entweder bereits vorhanden ist oder ungültige Zeichen enthält!" & _
            vbCrLf & "Es wurden " & lSuccessCounter & " Arbeitsblätter erstellt.", _
            vbInFormation + vbOKOnly, "WARNUNG!"
        Else
            MsgBox "Es wurden " & lSuccessCounter & " Arbeitsblätter erstellt.", _
            vbInFormation + vbOKOnly, "HINWEIS!"
        End If
    
    End If
End Sub

Anmerkungen und Hinweise

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2013.
Die Nutzung erfolgt auf eigene Gefahr. Bitte denken Sie immer zuerst an eine ausreichende Datensicherung. Wir können keinen kostenlosen Support anbieten. Es gelten unsere Nutzungs­bedingungen.


So einfach läuft unsere VBA-Expresshilfe ab

1
Senden Sie uns Ihre Office-Datei oder Ihren VBA-Code (gerne anonymisiert) mit einer kurzen Problembeschreibung oder Ihrem Erweiterungswunsch per E-Mail.
2
Wir analysieren Ihr Anliegen schnell und schicken Ihnen umgehend (tagsüber meist innerhalb von 1-2 Stunden) ein Festpreis-Angebot.
3
Nach Ihrer Zustimmung lösen wir Ihr Problem (meist noch am gleichen Tag) oder setzen Ihre Erweiterung zuverlässig um – inklusive verständlicher Dokumentation der durchgeführten Maßnahmen.

Jetzt kontaktieren!







Mit einem * gekennzeichnete Eingabefelder sind Pflichtfelder.
Datenschutzhinweise zum Kontaktformular: Die von Ihnen im Kontaktformular bereitgestellten Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verwendet und nicht ohne Ihre Zustimmung an Dritte weitergegeben. Ihre Daten werden nur für den Zeitraum gespeichert, der zur Bearbeitung Ihrer Anfrage erforderlich ist. Weitere Hinweise zum Datenschutz finden Sie in unserer Datenschutzerklärung.
Hinweis: Für die vollständige Funktion dieser Website ist JavaScript erforderlich.
Bitte aktivieren Sie JavaScript in Ihrem Browser, um alle Inhalte und interaktiven Funktionen nutzen zu können.