Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Tabellenblatt kopieren und umbenennen mit ansteigender Nummr
14.08.2023 19:57:45
Soulger
Hallo, ich kenn mich in Excel gut aus, meine VBA Kenntnisse (wenn man das so nennen darf) sind "dürftig".
Für meine Rechnungen die ich im Excel schreibe würde ich gerne per Knopfdruck das ein vorhandenes Tabellenblatt kopiert wird (Kopie links vom Original) und das neue Tabellenblatt soll den zuerst den vorhandenen Namen aus der Zelle A7 entfernen (Name des Rechnungsempfängers) und die Rechnungsnummer in Zelle I13 um einen Zähler erhöhen.
Der Name des Tabellenblatts soll wie folgt lauten: RG-2023-"Wert aus I13-Wert aus A7

Bsp: Letzte Rechnung hat als Name Max Muster in A7 stehen und Rechnungsnummer 001 in Zelle I13
das Tabellenblatt heißt RG-2023-001-MaxMuster
beim Kopieren soll ein neues Tabellenblatt entstehen (links davon)
Zelle A7 soll gelöscht werden und I13 um 1 zähler erhöht werden = somit heißt das neue Tabellenblatt: "RG-2023-002-" (nach 002 steht nichts da ja Zelle A7 noch nicht manuelle befüllt wurde. Wenn ich dann A7 befülle soll das auch im Tabellenblatt ersichtlich sein

Aktuell kopiere ich die Tabellenblätter manuell und habe ein Makro laufen das einfach aus einer Textkette "=TEXTKETTE("RG-";H13;"-";I13;"-";A7) " die ich erstellt habe das Tabellenblatt umbenennt, aber ich schaff nicht beim kopieren einen Zähler zu machen der immer die Zahl um eins erhöht

Hoffe auf eure Unterstützung, vielen lieben Dank

lg Soulger

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt kopieren und umbenennen mit ansteigender Nummr
14.08.2023 21:35:20
Rudi Maintaire
Hallo,
Sub kopie()

ActiveSheet.Copy before:=ActiveSheet
With ActiveSheet
.Range("I13") = .Range("I13") + 1
.Range("A7") = ""
.Name = "RG-2023-" & Format(.Range("I13"), "000-")
End With
End Sub

Gruß
Rudi
AW: Tabellenblatt kopieren und umbenennen mit ansteigender Nummr
14.08.2023 22:26:45
Soulger
Vielen Dank Rudi - ich bin mehr als begeistert von der raschen Hilfe und es klappt perfekt.
Wünsche dir einen schönen Abend und wirklich vielen vielen Dank
lg Soulger
Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Tabellenblatt kopieren und umbenennen mit ansteigender Nummer


Inhaltsverzeichnis


Die Fragestellung


Du möchtest ein Excel-Tabellenblatt kopieren und das neue Blatt automatisch mit einer ansteigenden Nummer umbenennen.


Erläuterung des Problems {#erläuterung-des-problems}


Beim Kopieren eines Tabellenblattes in Excel wird standardmäßig ein Name wie "Kopie von Blatt1" vergeben. Wenn du jedoch eine Serie von Kopien erstellen möchtest, die fortlaufend nummeriert sind (z.B. "Blatt2", "Blatt3", "Blatt4", ...), gibt es keine eingebaute Funktion, die dies automatisch macht.


Lösung des Problems {#lösung-des-problems}


Du kannst ein VBA-Makro verwenden, um das Tabellenblatt zu kopieren und entsprechend umzubenennen. Hier ist ein Beispielcode:

Sub CopyAndRenameSheet()
    Dim ws As Worksheet
    Dim newSheet As Worksheet
    Dim sheetName As String
    Dim i As Integer

    ' Basisname für das Tabellenblatt
    sheetName = "Blatt"

    ' Finde die höchste Nummerierung der bestehenden Blätter
    i = 1
    For Each ws In ThisWorkbook.Worksheets
        If Left(ws.Name, Len(sheetName)) = sheetName Then
            If Val(Mid(ws.Name, Len(sheetName) + 1)) >= i Then
                i = Val(Mid(ws.Name, Len(sheetName) + 1)) + 1
            End If
        End If
    Next ws

    ' Kopiere das Tabellenblatt und benenne es um
    Set ws = ThisWorkbook.Sheets("Vorlage") ' "Vorlage" ist der Name des zu kopierenden Blattes
    ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Set newSheet = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    newSheet.Name = sheetName & i
End Sub

Dieses Skript sucht nach dem letzten Tabellenblatt mit dem Namen "Blatt" gefolgt von einer Nummer und fügt dann eine Kopie des Blattes "Vorlage" mit der nächsten verfügbaren Nummer hinzu.


Anwendungsbeispiele aus der Praxis


  • Berichterstellung: Erstellen von monatlichen Berichtsblättern mit fortlaufender Nummerierung.
  • Kursverwaltung: Kopieren von Vorlagen für jede Kurswoche oder -session mit entsprechender Nummerierung.

Tipps


  • Stelle sicher, dass keine Blätter mit nicht-numerischen Suffixen im Namen vorhanden sind, die das Skript stören könnten.
  • Du kannst das Makro anpassen, um Blätter basierend auf anderen Kriterien zu nummerieren, z.B. mit Datumsangaben.

Verwandte Themenbereiche


  • VBA-Programmierung in Excel
  • Automatisierung von Tabellenblattoperationen
  • Berichterstattung und Dokumentenmanagement

Zusammenfassung


Das Kopieren und automatische Umbenennen von Tabellenblättern mit ansteigender Nummer kann in Excel effizient mit einem VBA-Makro durchgeführt werden. Dieses Makro kann Zeit sparen und Fehler vermeiden, die beim manuellen Kopieren und Umbenennen von Blättern auftreten können. Es ist besonders nützlich, wenn regelmäßig neue Blätter nach einem bestimmten Muster erstellt werden müssen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige