Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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
Inhaltsverzeichnis

Tabellenblatt kopieren/nummerieren

Tabellenblatt kopieren/nummerieren
30.10.2020 14:18:07
David
Hallo zusammen,
ich Arbeite aktuell an meiner ersten UserForm in Excel.
Hier habe ich aktuell ein Spinwheel welches in einer TextBox die Nummernwerte 0 - Unendlich ausgibt.
Anhand dieser Nummer würde ich gerne folgendes umsetzen:
Wert - 0 = Tabellenblatt "Projekt_1" Ausblenden
Wert - 1 = Tabellenblatt "Projekt_1" bleibt eingeblendet
Wert - 2 = Tabellenblatt "Projekt_1" Kopieren und dahinter setzen mit dem Namen "Projekt_2"
Wert - 3 = Tabellenblatt "Projekt_1" zwei mal Kopieren und dahinter setzen mit den Namen "Projekt_2" und "Projekt_3".
etc....
Dies soll passieren wenn ich den CommandButton Klicke.
Einfaches Kopieren bekomme ich schon hin aber leider nicht mit der Fortlaufen Nummerierung anhand und Menge anhand des Zahlenwertes aus der TextBox.
Sieht also aktuell so bei mir aus:
Private Sub Button_Anlegen_Click()
'Kopieren und erstellen der Tabellenblätter
Worksheets("Projekt_1").Copy after:=Worksheets("Projekt_2")
ActiveSheet.Name = "Kassenautomat " & Worksheets.Count - 2
End Sub
Hoffe dies ist nicht zu kompliziert und ich bekomme es auch umgesetzt, das wäre Super!
Danke schonmal!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt kopieren/nummerieren
30.10.2020 15:51:20
ChrisL
Hi
Vielleicht so...
Private Sub CommandButton1_Click()
Dim i As Long
Select Case TextBox1.Value
Case 0
Worksheets("Projekt_1").Visible = False
Case 1
Worksheets("Projekt_1").Visible = True
Case Is > 1
Application.ScreenUpdating = False
For i = 1 To TextBox1.Value - 1
Call BlattErstellen
Next i
Case Else
MsgBox "kein gültiger Wert"
End Select
End Sub

Private Sub BlattErstellen()
'Kopieren und erstellen der Tabellenblätter
Worksheets("Projekt_1").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Kassenautomat " & Worksheets.Count - 2
End Sub
cu
Chris
Anzeige
AW: Tabellenblatt kopieren/nummerieren
01.11.2020 11:13:08
David
Hallo ChrisL,
ich konnte es leider erst jetzt probieren.
Das mit dem Case funktioniert einwandfrei!
Nur habe ich noch ein Problem mit dem Kopieren,
er fängt immer an bei Projekt 10 dann Projekt 11 es sollte ja dann Projekt 2 und Projekt 3 sein.
könnte es sein das er die TabellenBlätter Zählt mit Worksheet.Count? Das würde schon hinkommen.
Wie sollte es gemacht werden das er Fortlaufen mit Projekt 2 und dan Projekt 3 kopiert?
AW: Tabellenblatt kopieren/nummerieren
02.11.2020 09:41:25
ChrisL
Hi David
Korrigiere mal -2 in -10.
cu
Chris
AW: Tabellenblatt kopieren/nummerieren
03.11.2020 12:01:18
David
HI ChrisL,
das habe ich bereits gemacht ud das funktioniert auch.
Nur Leider ist die Reihenfolge durcheinander.
Ich habe jetzt zb.: Projekt_1 dann Projekt_3 dann Projekt_2
Kann man das noch sortieren?
Wie würde es sich den verhalten wenn ich diese Funktion mehrfach habe also noch eine weitere TextBox wo anhand der Zahl weitere Tabellenblätter erstellt werden sollen? bezieht es sich dann nur auf die von anfang an vorhandenen Tabellenblätter?
Danke schonmal!
Anzeige
AW: Tabellenblatt kopieren/nummerieren
03.11.2020 16:40:27
ChrisL
Hi
Die neu erzeugte Tabelle wird immer hinter die letzte vorhandene Tabelle gestellt. Dein Problem kann ich ohne Beispieldatei nicht nachvollziehen.
Wenn du noch andere Projektbezeichnungen mit variabler Anzahl Blätter hast, dann müsste man die Blätter einzeln durchzählen und man kann sich nicht mehr allgemein am Blattzahl-Total (Worksheets.Count) orientieren.
Muster:
Sub t()
Dim ws As Worksheet, x As Integer
For Each ws In ThisWorkbook.Worksheets
If ws.Name Like "Projekt_*" Then x = x + 1
Next ws
MsgBox "Es gibt " & x & " Projektblätter"
End Sub

cu
Chris
Anzeige
AW: Tabellenblatt kopieren/nummerieren
04.11.2020 09:01:46
David
Hallo ChrisL,
das Tabellenblatt steht nicht am Ende danach kommen noch andere.
Ich denke das Problem ist das ich sage Kopiert es hinter "Kassenautomat_1".
Ich müsste im sagen kopiere das nächste "Kassenautomat_X" - Blatt hinter Kassenautomat_*?
Gibt es da eine möglichkeit?
Hier mein Code:

Private Sub BlattErstellen()
'Kopieren und erstellen der Tabellenblätter
Dim tbstr As String
tbstr = "Kassenautomat_" & ActiveWorkbook.Sheets.Count - 9
Worksheets("Kassenautomat_1").Copy after:=ActiveWorkbook.Sheets("Kassenautomat_1")
ActiveSheet.Name = tbstr
End Sub

Anzeige
AW: Tabellenblatt kopieren/nummerieren
04.11.2020 09:32:06
ChrisL
Hi
Sub t()
Dim ws As Worksheet, x As Integer
For Each ws In ThisWorkbook.Worksheets
If ws.Name Like "Kassenautomat_*" Then x = x + 1
Next ws
Worksheets("Kassenautomat_1").Copy after:=ActiveWorkbook.Sheets("Kassenautomat_" & x)
ActiveSheet.Name = "Kassenautomat_" & x + 1
End Sub
Besser wäre es, dies ohne Schleife zu lösen, aber hierzu fehlen die Details. Welche Blätter sind fix, welche variabel, Positionen der Blätter usw.
cu
Chris
AW: Tabellenblatt kopieren/nummerieren
04.11.2020 11:39:58
David
Hi ChrisL,
leider bekomme ich da einen Fehler.
Ich habe die Datei jetzt hochgeladen. Geplant ist das Kassenautomat_1 / Einfahrtskontrollgerät_1 / Ausfahrtskontrollgerät_1 Variable sein sollen , also je nach anzahl in der Userform kopiert und Automatisch nummeriert werden sollen. Dies soll später noch durch 2-4 weitere Variable Blätter ( Schranken ) erweitert werden.
Der Rest ist Fix und nicht variable, soll 2 Blätter sollen aber je nach Userform eintrag Ausgeblendet werden, dies noch zur Info!
Hier die Datei:
https://www.herber.de/bbs/user/141304.xlsm
Danke schonmal!
Anzeige
AW: Tabellenblatt kopieren/nummerieren
04.11.2020 12:54:32
ChrisL
Hi David
Private Sub Button_Anlegen_Click()
Call BlattErstellen(TextBox_KA_KP, "Kassenautomat_")
Call BlattErstellen(TextBox_EKG_KP, "Einfahrtskontrollgerät_")
' usw.
End Sub

Private Sub BlattErstellen(strTB As String, strBez As String)
Dim i As Integer, intTB As Integer
Dim ws As Worksheet, x As Integer
If Not IsNumeric(strTB) Then Exit Sub
intTB = strTB
If intTB = 0 Or intTB = 1 Then
Worksheets(strBez & 1).Visible = intTB
Else
For i = 1 To intTB - 1
x = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name Like strBez & "*" And _
ws.Name  "Kassenautomat_ZE" Then x = x + 1
Next ws
Worksheets(strBez & 1).Copy after:=ActiveWorkbook.Sheets(strBez & x)
ActiveSheet.Name = strBez & x + 1
Next i
End If
End Sub

cu
Chris
Anzeige
AW: Tabellenblatt kopieren/nummerieren
04.11.2020 14:37:52
David
Hallo ChrisL,
das klappt wunderbar!
Vielen Dank dir! Problem gelöst!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige