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

Forumthread: Neues Tabellenblatt anlegen und bennenen per Makro

Neues Tabellenblatt anlegen und bennenen per Makro
15.02.2017 09:50:26
Patrick
Hallo liebe Makro-Experten,
ich versuche ein Tabellenblatt per Makro anzulegen und automatisch zu benennen, abhängig davon was in einer bestimmten Zelle steht.
Per Makrorekorder habe ich folgendes erhalten:
Sheets("VORLAGE").Select
ActiveSheet.Buttons.Add(821.25, 16.5, 75.75, 18).Select
Sheets("VORLAGE").Copy After:=Sheets(4)
Range("K3").Select
Selection.Copy
Sheets("VORLAGE (2)").Select
Sheets("VORLAGE (2)").Name = "Juni 2017"
Range("M10").Select
ActiveSheet.Shapes.Range(Array("Button 1")).Select
Application.CutCopyMode = False
Selection.Delete
Selection.Cut

Das Tabellenblatt heißt VORLAGE. In Zelle K3 wird der Name des neuen Tabellenblattes angezeigt. Nach Erstellung einer Kopie von VORLAGE soll das neue Tabellenblatt so heißen wie in K3 steht.
Die Erstellung erfolgt per Klick auf den Button "erstellen", dieser Button soll im Nachgang im neuen Tabellenblatt gelöscht werden.
Nun das Problem:
Das neue Tabellenblatt wird erstellt und benannt, jedoch immer Juni 2017, da dieser Text bei Aufzeichnung des Makros in K3 stand. die Benennung muss jedoch variabel sein, es soll nur der Zwischenspeicher eingefügt werden.
Die Löschung des Button "erstellen" (Button 1) erfolgt nicht korrekt. Er wird gelöscht, es erscheint jedoch ein neuer sowie in der Vorlage wird der selbe neue Button aus dem neuen Blatt über den bereits vorhandenen Button "gelegt"
Kann mir Makro-Noob jemand helfen?
Vielen Dank!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neues Tabellenblatt anlegen und bennenen per Makro
15.02.2017 12:27:41
Rudi
Hallo,
so?
Private Sub CommandButton1_Click()
ActiveSheet.Copy after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = .Range("K3")
.Shapes(1).Delete
End With
End Sub
Gruß
Rudi
AW: Neues Tabellenblatt anlegen und bennenen per Makro
15.02.2017 13:30:50
Patrick
Grandios, vielen Dank!
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Neues Tabellenblatt anlegen und benennen per Makro


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du ein neues Tabellenblatt erstellen möchtest.

  2. Aktiviere den Entwicklermodus, falls noch nicht geschehen. Dies kannst Du unter "Datei" > "Optionen" > "Menüband anpassen" machen.

  3. Füge einen Button (ActiveX-Steuerelement) in Dein Arbeitsblatt ein.

  4. Klicke mit der rechten Maustaste auf den Button und wähle "Code anzeigen".

  5. Füge den folgenden VBA-Code ein, um ein neues Tabellenblatt zu erstellen und es gemäß dem Inhalt von Zelle K3 zu benennen:

    Private Sub CommandButton1_Click()
       ActiveSheet.Copy after:=Sheets(Sheets.Count)
       With ActiveSheet
           .Name = .Range("K3").Value
           .Shapes(1).Delete
       End With
    End Sub
  6. Schließe den VBA-Editor und teste den Button, um sicherzustellen, dass das neue Tabellenblatt korrekt erstellt und benannt wird.


Häufige Fehler und Lösungen

  • Fehler: Das neue Tabellenblatt wird immer mit dem selben Namen erstellt.

    • Lösung: Stelle sicher, dass der VBA-Code auf die richtige Zelle verweist. Verwende .Range("K3").Value, um den aktuellen Wert der Zelle K3 zu erhalten.
  • Fehler: Der Button wird nicht richtig gelöscht.

    • Lösung: Überprüfe, ob der Button tatsächlich das erste Shape im neuen Tabellenblatt ist. Falls nicht, ändere den Index in Shapes(1) entsprechend.

Alternative Methoden

Neben der Verwendung eines Buttons kannst Du auch eine andere Methode nutzen, um ein neues Tabellenblatt zu erstellen:

  • Makro über das Menü ausführen:
    1. Erstelle ein Makro im VBA-Editor mit dem gleichen Code.
    2. Weise das Makro einem Menüpunkt oder einer Tastenkombination zu.

Diese Methode eignet sich gut, wenn Du regelmäßig ein neues Tabellenblatt erstellen musst.


Praktische Beispiele

  1. Neues Tabellenblatt mit vordefiniertem Namen erstellen:

    Sub NeuesTabellenblattErstellen()
       Sheets.Add.Name = "Neues Blatt"
    End Sub
  2. Vorlage kopieren und umbenennen:

    Sub VorlageKopieren()
       Sheets("VORLAGE").Copy After:=Sheets(Sheets.Count)
       ActiveSheet.Name = "Mein neues Blatt"
    End Sub

Diese Beispiele zeigen, wie Du mit VBA ein neues Tabellenblatt erstellen und es benennen kannst.


Tipps für Profis

  • Verwende Error Handling in Deinem VBA-Code, um sicherzustellen, dass keine Fehler auftreten, wenn der Name des neuen Tabellenblattes ungültig ist.

    On Error Resume Next
    ActiveSheet.Name = .Range("K3").Value
    If Err.Number <> 0 Then
       MsgBox "Ungültiger Name für das Tabellenblatt"
    End If
    On Error GoTo 0
  • Experimentiere mit der Formatierung des neuen Tabellenblattes, indem Du weitere VBA-Befehle hinzufügst, um das Aussehen zu gestalten.


FAQ: Häufige Fragen

1. Kann ich ein neues Tabellenblatt aus einer Vorlage erstellen?
Ja, Du kannst ein bestehendes Tabellenblatt kopieren und es dann umbenennen, wie im obigen Beispiel beschrieben.

2. Was passiert, wenn der Name des neuen Tabellenblattes bereits existiert?
Excel wird einen Fehler anzeigen. Es ist ratsam, den Namen vorher zu überprüfen und gegebenenfalls einen einzigartigen Namen zu generieren.

3. Ist es möglich, das neue Tabellenblatt in einer bestimmten Position einzufügen?
Ja, Du kannst das Argument After oder Before in der Copy-Methode verwenden, um die Position des neuen Tabellenblattes festzulegen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige