Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blätter mittels Vorlage automatisch erstellen

Blätter mittels Vorlage automatisch erstellen
20.02.2018 13:18:59
sascha
Hallo zusammen,
ich hab hier eine Mappe für unsere Instandhaltungsplanung. Auf jedem Blatt wird die Wartung und Reparatur für eine Maschine geplant. Im Blatt "Aktuelles Halbjahr" werden alle Maschinen zur Übersicht in vorm eines Gant-Diagrammes abgebildet.
Zum vereinfachen beim Erstellen der Blätter wäre es super, wenn die Blätter sich nach dem Blatt "Vorlage" automatisch erstellen und die Namen aus der Liste "Aktuelles Halbjahr Spalte F, Zeile 7 vergeben werden.
Wenn schon ein Blatt mit dem Namen vorhanden ist, soll es einfach übersprungen werden.
Mit VBA hab ich bisher nur über den Makrorecorder gearbeitet und kenne mich sonst nicht damit aus.
Hier ist die abgespeckte Datei:
https://www.herber.de/bbs/user/119934.xls
Vielen Dank im Voraus.
Sascha
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blätter mittels Vorlage automatisch erstellen
20.02.2018 16:09:19
Rainer
Hallo Sascha,
füge das in ein Modul ein:
Sub Blätter_Erstellen()
Dim sht As Worksheet
Dim shtNew As Worksheet
Dim shtVorlage As Worksheet
Dim LastRow As Long
Set sht = Sheets("Aktuelles Halbjahr")
Set shtVorlage = Sheets("Vorlage")
i = 7 'Erste Zeile
While sht.Cells(i, 6)  ""
shtVorlage.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set shtNew = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
On Error Resume Next ' Fehler kommt, wenn Blatt existiert
shtNew.Name = sht.Cells(i, 6)
If Err.Number  0 Then
Application.DisplayAlerts = False
shtNew.Delete
Err.Clear
Application.DisplayAlerts = True
End If
i = i + 2       '2 Zeilen springen
Wend
End Sub
Gruß,
Rainer
Anzeige
AW: Blätter mittels Vorlage automatisch erstellen
21.02.2018 10:36:31
Sascha
Hallo Rainer,
vielen Dank für die Hilfe. Es funktioniert so wie es funktionieren soll.
Irgendwann werd ich es schaffen mich mal mehr mit VBA zu beschäfftigen.
Gruß und schönen Tag noch,
Sascha
AW: Blätter mittels Vorlage automatisch erstellen
22.02.2018 09:19:58
Sascha
Hallo Rainer,
ich hab da noch eine Frage zu deinem Code:
While sht.Cells(i, 6) ""
shtVorlage.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set shtNew = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
On Error Resume Next ' Fehler kommt, wenn Blatt existiert
shtNew.Name = sht.Cells(i, 6)

(i, 6) steht ja dafür, das die Namen für die Blätter in der 6 Spalte stehen.
Ist es möglich die Blattnamen aus den Spalten 3 und 4 zu erzeugen? Vielleicht sogar mit einem Trennzeichen? In etwas so wie:
Spalte 3 = 6040; Spalte 4 = 08; Blattname = 6040-08;
Gruß Sascha
Anzeige
AW: Blätter mittels Vorlage automatisch erstellen
22.02.2018 14:17:21
Rainer
Hallo Sascha,
ja klar geht das:
shtNew.Name = sht.Cells(i, 6)

musst du ersetzen durch
shtNew.Name = sht.Cells(i, 3) & "-" & shtNew.Name = sht.Cells(i, 4)
Gruß,
Rainer
AW: Blätter mittels Vorlage automatisch erstellen
23.02.2018 07:25:31
Sascha
Hallo Rainer,
wenn ich den Code wie von dir vorgeschlagen ändere, erstellt excel mir nur ein neues Blatt mit dem Namen "Falsch".
So sieht der Code aus:
While sht.Cells(i, 6) ""
shtVorlage.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set shtNew = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
On Error Resume Next ' Fehler kommt, wenn Blatt existiert
shtNew.Name = sht.Cells(i, 3) & "-" & shtNew.Name = sht.Cells(i, 4)

Muss ich in der ersten Zeile auch die 6 ändern?
Gruß Sascha
Anzeige
AW: Blätter mittels Vorlage automatisch erstellen
23.02.2018 07:53:10
Rainer
Hallo Sasche,
nein, ich denke nicht. Die erste Zeile prüft nur, ob das Feld leer ist. Wenn das erste leere Feld gefunden wird, dann ist die Tabelle zu Ende.
Ich habe einfach einen Copy&Paste Fehler gemacht. Ich sollte nicht mehr vom Handy aus tippen...
So ist es richtig:
shtNew.Name = sht.Cells(i, 6)
musst du ersetzen durch
shtNew.Name = sht.Cells(i, 3) & "-" & sht.Cells(i, 4)
Anzeige
AW: Blätter mittels Vorlage automatisch erstellen
23.02.2018 10:16:37
Sascha
Jetzt funktioniert es.
Vielen Dank.
AW: Blätter mittels Vorlage automatisch erstellen
23.02.2018 11:46:15
Rainer
Danke für die Rückmeldung und viel Spaß damit.
Lass was hören wenn du weitere Hilfe brauchst.
Rainer

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Blätter automatisch mit einer Vorlage in Excel erstellen


Schritt-für-Schritt-Anleitung

Um in Excel ein neues Blatt mit einer Vorlage automatisch zu erstellen, kannst du den folgenden VBA-Code verwenden. Dieser Code kopiert eine Vorlage und benennt die neuen Blätter anhand der Namen in der Spalte F der Tabelle "Aktuelles Halbjahr".

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden VBA-Code in das Modul ein:
Sub Blätter_Erstellen()
    Dim sht As Worksheet
    Dim shtNew As Worksheet
    Dim shtVorlage As Worksheet
    Dim LastRow As Long
    Set sht = Sheets("Aktuelles Halbjahr")
    Set shtVorlage = Sheets("Vorlage")
    i = 7 'Erste Zeile

    While sht.Cells(i, 6) <> ""
        shtVorlage.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        Set shtNew = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        On Error Resume Next ' Fehler kommt, wenn Blatt existiert
        shtNew.Name = sht.Cells(i, 6)
        If Err.Number <> 0 Then
            Application.DisplayAlerts = False
            shtNew.Delete
            Err.Clear
            Application.DisplayAlerts = True
        End If
        i = i + 2 '2 Zeilen springen
    Wend
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, um die Blätter automatisch zu erstellen.

Häufige Fehler und Lösungen

  • Fehler beim Benennen der Blätter: Wenn du einen Fehler erhältst, dass das Blatt bereits existiert, wird das bestehende Blatt gelöscht und ein neues erstellt. Achte darauf, dass die Namen in der Spalte F nicht leer sind.
  • Falscher Blattname: Wenn dein Blatt nur "Falsch" heißt, überprüfe, ob der Code korrekt ist. Die Zeile für den Blattnamen sollte so aussehen:
    shtNew.Name = sht.Cells(i, 3) & "-" & sht.Cells(i, 4)

Alternative Methoden

Neben der Verwendung von VBA kannst du auch die Funktion "Blatt kopieren" in Excel manuell nutzen. Dies ist jedoch weniger effizient, wenn du viele Blätter erstellen musst. Eine andere Möglichkeit besteht darin, ein Excel-Add-In zu nutzen, das speziell für die Erstellung von Vorlagen entwickelt wurde.


Praktische Beispiele

  1. Blätter für Maschinenwartung erstellen: Wenn du ein Excel-Dokument für die Instandhaltungsplanung verwendest, kannst du die obige Methode nutzen, um für jede Maschine ein neues Blatt mit der entsprechenden Vorlage zu erstellen.
  2. Verwendung von Trennzeichen: Wenn deine Daten in den Spalten 3 und 4 gespeichert sind (z.B. 6040 und 08), kannst du die folgenden Zeilen im VBA-Code verwenden:
    shtNew.Name = sht.Cells(i, 3) & "-" & sht.Cells(i, 4)

Tipps für Profis

  • Excel-Vorlage erstellen: Stelle sicher, dass deine Vorlage gut strukturiert ist, um die Effizienz zu maximieren.
  • Testen von Makros: Teste dein Makro zuerst in einer Kopie deiner Excel-Datei, um unerwünschte Änderungen zu vermeiden.
  • Automatisierung: Du kannst Makros auch mit Schaltflächen verbinden, um die Nutzung zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Vorlage erstellen?
Du kannst eine Excel-Vorlage erstellen, indem du ein Tabellenblatt so formatierst, wie du es möchtest, und es dann als .xltx-Datei speicherst.

2. Kann ich den Code anpassen, um mehr Spalten zu verwenden?
Ja, du kannst die Zeilen im Code ändern, um weitere Spalten für die Blattnamen zu verwenden. Achte darauf, die Syntax korrekt zu halten.

3. Wie kann ich den Makro-Recorder in Excel nutzen?
Drücke ALT + F8, wähle „Makro aufzeichnen“ aus und folge den Anweisungen, um deine Aktionen aufzuzeichnen. Dies kann dir helfen, die Grundlagen von VBA zu lernen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige