Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Tabellenblätter variabel kopieren

Tabellenblätter variabel kopieren
15.07.2020 12:12:28
David
Hallo zusammen,
folgender Sachverhalt:
Ich habe eine Tabelle mit insgesamt 4 Tabellenblättern (Anfrage, Üb., Mat., und Fert.)
Es werden in "Anfrage" Werte eingetragen. Hier gibt es die Möglichkeit, dass man mehrere Farben (erste Farbe in D29, zweite in E29,...) angeben kann. (max. 10 Stück)
Anhand dieser Anzahl der Farben sollen die Tabellenblätter Üb, Mat und Fert kopiert werden.
Sprich man gibt beispielsweise 3 Farben (rot, weiß und grün) an, dann sollen die Blätter Üb. rot, Mat. rot, Fert. rot, Üb. weiß, Mat. weiß, .... erstellt werden, bis alle Blätter für jede Farbe aus der Anfrage erstellt wurde.
Wollte wie folgt vorgehen:
1. Üb., Mat. und Fert. Kopie erstellen (Üb (1), Mat. (1) und Fert (1))
2. Üb(1) Mat (1) und Fert (1) umbenennen zu Üb rot, Mat rot und Fert rot
(erster Farbname)
3. Schritt 1 wiederholen
4. Schritt 2 wiederholen mit der nächsten Farbe aus "Anfrage"
5. so oft wiederholen bis alle Farben aus Anfrage abgedeckt sind.
Mein Problem ist, dass die Anzahl der Farbe sehr stark variiert, manchmal sind es zwei, manchmal sind es fünf oder teilweise auch nur eine Farbe.
Folgenden Code habe ich bisher:
'Üb kopieren
Sheets("Üb").Select
ActiveSheet.Buttons.Add(978.75, 995.25, 129, 31.5).Select
ActiveSheet.Buttons.Add(773.25, 1488.75, 204, 39.75).Select
Sheets("Üb").Copy Before:=Sheets(2)
'Erste Farbe kopieren
Sheets("Anfrage").Select
Range("D29").Select
Application.CutCopyMode = False
Selection.Copy
'Üb (1) umbenennen zu Üb + erster Farbname
Sheets("Üb (1)").Select
Sheets("Üb (1)").Name = "Üb "
Hoffe Ihr habt meine Anfrage einigermaßen verstanden und es kann mit jemand weiterhelfen.
Vielen Dank schon mal im voraus.
Gruß
David

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter variabel kopieren
15.07.2020 12:26:34
David
Ok habe es nun soweit, dass das erste Üb. in Üb rot umbenannt wird, aber wie mache ich das ganze nun variabel, sprich bei 3 Farben macht der Code den ganzen Spaß 3x, bei 5 Farben 5x,...?
Gruß
David
AW: Tabellenblätter variabel kopieren
15.07.2020 12:42:08
David
Ok habe es nun soweit, dass das erste Üb. in Üb rot umbenannt wird, aber wie mache ich das ganze nun variabel, sprich bei 3 Farben macht der Code den ganzen Spaß 3x, bei 5 Farben 5x,...?
Gruß
David
AW: Tabellenblätter variabel kopieren
15.07.2020 13:51:35
Alen
Hallo David,
habe hier einen Code für dich geschrieben :)
Sub MeinProgramm()
Application.ScreenUpdating = False
Dim wsAnfrage As Worksheet, wsUb, wsMat, wsFert
Dim rng As Range
'Tabellenblätter den Variablen zuordnen
Set wsAnfrage = ThisWorkbook.Worksheets("Anfrage")
Set wsUb = ThisWorkbook.Worksheets("Üb.")
Set wsMat = ThisWorkbook.Worksheets("Mat.")
Set wsFert = ThisWorkbook.Worksheets("Fert.")
'Jede Zelle in der Range von D29:M29 durchlaufen
For Each rng In wsAnfrage.Range("D29:M29")
'Abfragen ob die Zelle nicht leer ist
If Not IsEmpty(rng) Then
'Wenn die Zelle nicht leer ist, dann werden die drei Tabellenblätter (Üb., Mat. und  _
Fert.) kopiert und mit dem Text, welcher in der Zelle steht, ergänzt
wsUb.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = wsUb.Name & " " & rng.Text
wsMat.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = wsMat.Name & " " & rng.Text
wsFert.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = wsFert.Name & " " & rng.Text
End If
Next rng
Application.ScreenUpdating = True
End Sub
Freue mich auf eine Antwort.
SG Alen
Anzeige
AW: Tabellenblätter variabel kopieren
15.07.2020 14:50:19
David
Direkt ausprobiert, funktioniert wunderbar :)
Vielen Dank dafür.
Eine Frage noch, was genau macht "(Sheets.Count)" also ist das schon vorgegeben, dass hier immer eins hoch gezählt wird?
Gruß
David
AW: Tabellenblätter variabel kopieren
15.07.2020 15:29:08
Alen
Na das freut mich :)
"Sheets.Count" gibt dir immer die Anzahl der Tabellenblätter zurück. Damit wird gewährleistet, dass immer nach dem letzten Tabellenblatt ein neues Tabellenblatt eingefügt wird.
In diesem Fall erfüllt es quasi das Inkrementieren um 1.
SG Alen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige