habe eine arbeitsmappe in die per odbc täglich neue daten in ein neues tabellenblatt geschrieben werden.
gibt es eine möglichkeit im macro anzugeben, dass die blätter aufsteigend bei jedem macrostart benannt werden?
nennt die blätter präfix1, präfix2,...
einfach präfix ersetzen
oder löschen(dann "präfix" & löschen), dann nennt er sie nur 1,2,...
mfg
Private Sub Workbook_Open()
For i = 1 To Worksheets.Count
Worksheets(i).Name = "präfix" & i
Next i
End Sub
ActiveWorkbook.Worksheets.Add _
after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveSheet.Name = ("SAKWAkt")
die mappe enthält bereits blätter von SAKW1-33
kann man hier hinbekommen, dass das im makro bezeichnete blatt statt SAKWAkt beim Auführen des macros fortlaufend benannt (34, 35, ... etc) wird?
sofern keine anderen blätter als SAKW1-SAKW... enthalten sind,
einfach zeile ersetzen durch:
ActiveSheet.Name = ("SAKW" & ActiveWorkbook.Worksheets.Count+1)
mfg
Öffne deine Excel-Arbeitsmappe und drücke Alt + F11
, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul:
Einfügen
und dann auf Modul
.Füge den folgenden Code ein, um die Blätter fortlaufend zu benennen:
Private Sub Workbook_Open()
For i = 1 To Worksheets.Count
Worksheets(i).Name = "SAKW" & i
Next i
End Sub
Schließe den VBA-Editor und speichere deine Arbeitsmappe.
Teste das Makro, indem du die Arbeitsmappe schließt und erneut öffnest. Deine Blätter sollten jetzt fortlaufend benannt sein.
Fehler: "Blattname bereits vorhanden"
Worksheets.Count + 1
.Fehler: Makro funktioniert nicht
Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen
und aktiviere die entsprechenden Optionen.Eine andere Möglichkeit, mehrere Tabellenblätter umbenennen zu können, ist die Verwendung von Excel-Funktionen. Hier ein Beispiel:
INDIREKT
in Kombination mit ZÄHLENWENN
, um den Bezug auf andere Tabellenblätter herzustellen.Diese Methode ist zwar nicht so automatisiert wie ein VBA-Makro, eignet sich jedoch gut für einmalige Umbenennungen.
Beispiel für die Umbenennung von Blättern mit einem Präfix:
Wenn du eine Arbeitsmappe hast, die Blätter für jeden Monat enthält, kannst du den folgenden Code verwenden:
Private Sub Workbook_Open()
Dim Monate As Variant
Monate = Array("Januar", "Februar", "März")
For i = 0 To UBound(Monate)
Worksheets(i + 1).Name = Monate(i) & " 2023"
Next i
End Sub
Beispiel für die fortlaufende Benennung von Blättern:
Wenn du Blätter hast, die im Format "Monat Jahr" benannt werden sollen, kannst du:
Private Sub Workbook_Open()
Dim Monat As Integer
For Monat = 1 To 12
Worksheets(Monat).Name = MonthName(Monat) & " 2023"
Next Monat
End Sub
SaveSetting
und GetSetting
realisiert werden.1. Wie kann ich mehrere Tabellenblätter in Excel gleichzeitig umbenennen? Du kannst ein Makro verwenden, das alle gewünschten Blätter nacheinander umbenennt. Alternativ kannst du auch den VBA-Editor nutzen, um spezifische Blätter auszuwählen.
2. Ist es möglich, die Blätter nach einem bestimmten Muster fortlaufend zu benennen? Ja, du kannst den VBA-Code so anpassen, dass die Blätter nach jedem gewünschten Muster benannt werden, z.B. mit einem Präfix oder in einer bestimmten Reihenfolge.
3. Was passiert, wenn ich einen bereits vorhandenen Blattnamen verwende? Excel gibt einen Fehler aus, wenn du versuchst, einen Blattnamen zu verwenden, der bereits existiert. Stelle sicher, dass die Namen eindeutig sind, oder implementiere eine Logik, um dies zu vermeiden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen