Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt mit gewünschten Namen erzeugen

Forumthread: Tabellenblatt mit gewünschten Namen erzeugen

Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 09:56:59
kliemi
Hallo Zusammen
Mit dem angefügten Beispiel kann ich ein Tabellenblatt über ein Makro einfügen. Leider weiß ich nicht wie man dem Tabellenblatt einen Namen gibt bzw wie man in einem VBA darstellt, dass zum Beispiel das erste eingefügt TAbellenblatt Bid 1, das zweite Tabellenblatt Bid 2 u.s.w benannt wird. Über eine Idee wäre ich sehr dankbar. Es ist wichtig, dass jedes neue Tabellenblatt bis rechts eingefügt wird.


Sub Makro1()
ActiveWorkbook.Worksheets.Add after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
End Sub

Viele Grüße
André
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 10:02:16
Martin
Hallo André,
mal ein Beispiel für die Zuweisung des "Namens" eines Tabellenblattes:

Sub Makro1()
ActiveWorkbook.Worksheets.Add after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count).Name = "Bid1"
End Sub

Gruß
Martin Beck
Anzeige
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 13:54:53
kliemi
Genau das habe ich gesucht. Hat bestens funktioniert. Vielen Dank
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 10:04:05
Matthias
Hallo André,
mein Vorschlag:

Function BlattEinfügen(n As String) As Boolean
Dim ws As Worksheet
Dim da As Boolean
With ActiveWorkbook
Set ws = .Worksheets.Add(After:=.Worksheets(.Worksheets.Count))
End With
On Error Resume Next
ws.Name = n
If Err.Number > 0 Then
da = Application.DisplayAlerts
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = da
BlattEinfügen = False
Else
BlattEinfügen = True
End If
End Function

Hier wird ein Blatt angehängt und der Name zugewiesen. Tritt dabei ein Fehler auf, wird das Blatt wieder gelöscht und der Rückgabewert ist Falsch. Im Programm kannst du das z.B. so einsetzen:

Blattname = "MeinBlatt"
If BlattEinfügen(Blattname) = False Then
MsgBox "Konnte Blatt nicht erstellen!"
Exit Sub
End If

Gruß Matthias
Anzeige
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 10:05:53
stormy_weathers
Hallo,
einfach mal die Hilfe von Excel VBA verwenden...
Auszug:
Worksheets-Eigenschaft
Siehe auch Betrifft Beispiele Zusatzinfo
Gibt für ein Application-Objekt eine Sheets-Auflistung aller Arbeitsblätter der aktiven Arbeitsmappe zurück. Gibt für ein Workbook-Objekt eine Sheets-Auflistung zurück, die alle Arbeitsblätter in der angegebenen Arbeitsmappe darstellt. Schreibgeschütztes Sheets-Objekt.
Hinweise
Informationen zum Zurückgeben eines einzelnen Mitglieds einer Auflistung finden Sie unter Zurückgeben eines Objekts aus einer Auflistung.
Wenn kein Objektkennzeichner verwendet wird, werden alle Arbeitsblätter in der aktiven Arbeitsmappe zurückgegeben.
Diese Eigenschaft gibt keine Makrovorlagen zurück. Verwenden Sie die Excel4MacroSheets-Eigenschaft oder die Excel4IntlMacroSheets-Eigenschaft, um diese Blätter zurückzugeben.
Beispiel
In diesem Beispiel wird der Wert von Zelle A1 in Sheet1 der aktiven Arbeitsmappe angezeigt.
MsgBox Worksheets("Sheet1").Range("A1").Value
In diesem Beispiel wird der Name aller Arbeitsblätter in der aktiven Arbeitsmappe angezeigt.
For Each ws In Worksheets
MsgBox ws.Name
Next ws
In diesem Beispiel wird der aktiven Arbeitsmappe ein neues Arbeitsblatt hinzugefügt. Danach wird der Name des Arbeitsblattes festgelegt.
Set newSheet = Worksheets.Add
newSheet.Name = "current Budget"
Gruß
stormy
Anzeige
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 11:41:52
michael
Hi André
mach dir in Tab1 Spalte A eine Liste zb.
Bild 1 ,Bild 2 usw.

Sub DreimalEinfügen()
Dim Zelle As Range
’………………………………………….wähle hier wie viele TabBlätter du einfügen willst.A von bis A.
’………………………………………….wenn du nachträglich welche einfügen willst ändere A von bis A.
For Each Zelle In Sheets("Tabelle1").Range("A1:A9")
ThisWorkbook.Sheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
With ActiveSheet
.Name = Zelle.Value
.Cells(1, 1) = Zelle.Value
.Cells(1, 2).Value = Zelle.Offset(0, 1).Value
End With
Next
End Sub

lg.michael--Antwort währe nett !!
PS:Das Makro hab ich aus dem Forum
Anzeige
AW: Tabellenblatt mit gewünschten Namen erzeugen
22.01.2007 14:06:07
kliemi
Danke für schnelle Antwort
Komme Heute leider nicht mehr dazu es auszuprobieren. Melde mich wenn´s soweit ist.
mfg
kliemi
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt mit gewünschtem Namen erstellen in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein neues Tabellenblatt in Excel VBA zu erstellen und zu benennen, kannst du folgende Schritte ausführen:

  1. Öffne die Excel-Anwendung und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeineDateiName)", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden Code ein:

    Sub Makro1()
       Dim ws As Worksheet
       Set ws = ActiveWorkbook.Worksheets.Add(after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
       ws.Name = "Bid1"
    End Sub
  4. Anpassen der Namen: Wenn du mehrere Tabellenblätter mit fortlaufenden Namen erstellen möchtest, kannst du den Code wie folgt erweitern:

    Sub MehrereBlätterErstellen()
       Dim i As Integer
       For i = 1 To 5 ' Anzahl der Blätter, die du erstellen möchtest
           Dim ws As Worksheet
           Set ws = ActiveWorkbook.Worksheets.Add(after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
           ws.Name = "Bid" & i
       Next i
    End Sub
  5. Führe das Makro aus: Klicke im VBA-Editor auf "Ausführen" oder drücke F5, um das Makro zu starten.


Häufige Fehler und Lösungen

  • Fehler: "Der Name ist ungültig"

    • Ursache: Der Name, den du zuweisen möchtest, entspricht nicht den Namensregeln für Tabellenblätter (z.B. Leerzeichen oder Sonderzeichen).
    • Lösung: Stelle sicher, dass der Name nur Buchstaben, Zahlen oder Unterstriche enthält.
  • Fehler: "Das Blatt existiert bereits"

    • Ursache: Du versuchst, einen Namen zu verwenden, der bereits für ein anderes Blatt in der Arbeitsmappe vergeben ist.
    • Lösung: Überprüfe die vorhandenen Blattnamen und wähle einen einzigartigen Namen.

Alternative Methoden

Eine weitere Möglichkeit, ein neues Tabellenblatt zu erstellen und zu benennen, ist die Verwendung einer Funktion. Hier ist ein Beispiel:

Function BlattEinfügen(n As String) As Boolean
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = ActiveWorkbook.Worksheets.Add(After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
    ws.Name = n
    If Err.Number > 0 Then
        BlattEinfügen = False
        ws.Delete
    Else
        BlattEinfügen = True
    End If
End Function

Du kannst die Funktion dann wie folgt aufrufen:

If BlattEinfügen("NeuesBlatt") = False Then
    MsgBox "Konnte Blatt nicht erstellen!"
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit VBA ein neues Tabellenblatt erstellen und benennen kannst:

  1. Erstellen mit Listen aus einem anderen Blatt:

    Sub DreimalEinfügen()
       Dim Zelle As Range
       For Each Zelle In Sheets("Tabelle1").Range("A1:A3")
           ThisWorkbook.Sheets.Add(after:=Sheets(ThisWorkbook.Sheets.Count)).Name = Zelle.Value
       Next Zelle
    End Sub
  2. Erstellen mehrerer Blätter in einer Schleife:

    Sub MehrereBlätterErstellen()
       Dim i As Integer
       For i = 1 To 3
           Set ws = ActiveWorkbook.Worksheets.Add(after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
           ws.Name = "Bild " & i
       Next i
    End Sub

Tipps für Profis

  • Verwendung von activeworkbook.worksheets: Nutze die Worksheets-Eigenschaft, um auf alle vorhandenen Blätter zuzugreifen und sie zu manipulieren.
  • Fehlerbehandlung einbauen: Implementiere On Error Resume Next, um Fehler beim Benennen von Blättern elegant zu handhaben.
  • Automatisierung: Erstelle Makros, die automatisch mehrere Blätter basierend auf einer Liste von Namen erstellen, um Zeit zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich ein Tabellenblatt löschen? Um ein Tabellenblatt zu löschen, kannst du den folgenden Code verwenden:

Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("NameDesBlattes").Delete
Application.DisplayAlerts = True

2. Kann ich die Namen der Blätter dynamisch ändern? Ja, du kannst den Namen eines Blattes jederzeit ändern, indem du den Namen des Arbeitsblattes einfach zuweist:

ActiveWorkbook.Worksheets("AltesBlatt").Name = "NeuerName"

3. Wie kann ich sicherstellen, dass ich keine Duplikate erstelle? Du kannst eine Schleife einfügen, um zu überprüfen, ob der Name bereits existiert, bevor du das neue Blatt erstellst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige