Anzeige
Archiv - Navigation
1540to1544
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 durch Makro erzeugen und benennen

Tabellenblätter durch Makro erzeugen und benennen
13.02.2017 14:24:23
Christian
Hallo miteinander,
ich habe folgendes Problem, ich kenne mich mit VBA absolut nicht aus, habe aber eine Aufgabe bekommen die ich, meinem Wissensstand, ohne VBA nicht lösen kann.
Hier die Excel Mappe, an der ich mir die Zähne ausbeiße.
https://www.herber.de/bbs/user/111446.zip
In der Tabelle *Gesamtpackliste* sollen alle Daten eingegeben werden (so wie im Bsp. geschehen)
Von dort aus soll durch das Makro pro Colli eine Kopie der Vorlage (Vorlage_Colli) erzeugt werden und fortlaufend numerisch benannt werden (Colli1, Colli2...) wenn es zusätzlich möglich ist, sollten die Daten pro Colli (Colli1 - Daten von Colli1 usw.) direkt in die neue Seite eingefügt werden (Gewicht, Menge, Benennung, Abmaße und Verpackung).
Dabei am Sinnvollsten auch prüfen ob bereits eine Seite den Namen trägt, damit sie nicht überschrieben wird.
Ich danke schonmal recht herzlich im Vorfeld!
Mit freundlichen Grüßen
Christian

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
kopiert bis dato nur tabellenblatt
13.02.2017 15:47:20
Max2
Hallo,
hier die Datei:
und hier nur der Code: https://www.herber.de/bbs/user/111454.xlsm

Option Explicit
Sub Copy_Colli()
Dim wscopy As Worksheet
Dim wscolli As Worksheet
Dim counter As Integer
Dim lzeile As Long
Dim sname As String
Dim rng, c As Range
Dim maxcopys As Long
Dim i
Set wscolli = ThisWorkbook.Sheets("Gesamtpackliste")
With wscolli
lzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(13, 1), .Cells(lzeile, 1))
For Each c In rng
If IsNumeric(c.Value) And c.Value  "" Then
counter = counter + 1
End If
Next c
End With
Set wscopy = ThisWorkbook.Sheets("Vorlage_Colli")
Application.ScreenUpdating = False
For i = 1 To counter
Application.DisplayAlerts = False
maxcopys = ThisWorkbook.Sheets.Count
wscopy.Copy After:=ThisWorkbook.Sheets(maxcopys)
Application.CutCopyMode = False
ActiveSheet.Name = "Colli_" & i
Application.DisplayAlerts = True
Next i
Application.ScreenUpdating = True
End Sub

Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:30
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 09:27:40
Max2
Hallo,
habe den Code ein bisschen ergänzt/verändert.
Der Button wird jetzt aus den Kopien gelöscht und das Vorlagen Blatt wird unsichtbar gemacht.
Du musst es dann eben bei bedarf durch anderen Code oder in diesem Code an gewünschter stelle wieder Sichtbar machen.
Hier der "Neue":

Option Explicit
Sub Copy_Colli()
Dim wscopy As Worksheet
Dim wscolli As Worksheet
Dim counter As Integer
Dim lzeile As Long
Dim sname As String
Dim rng, c As Range
Dim maxcopys As Long
Dim i
Dim sh As Shape 'Neu! um Button zu entfernen
Set wscolli = ThisWorkbook.Sheets("Gesamtpackliste")
With wscolli
lzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(13, 1), .Cells(lzeile, 1))
For Each c In rng
If IsNumeric(c.Value) And c.Value  "" Then
counter = counter + 1
End If
Next c
End With
Set wscopy = ThisWorkbook.Sheets("Vorlage_Colli")
Application.ScreenUpdating = False
For i = 1 To counter
Application.DisplayAlerts = False
maxcopys = ThisWorkbook.Sheets.Count
wscopy.Copy After:=ThisWorkbook.Sheets(maxcopys)
Application.CutCopyMode = False
ActiveSheet.Name = "Colli_" & i
For Each sh In ActiveSheet.Shapes
sh.Delete 'Button in Kopie Löschen
Next sh
Application.DisplayAlerts = True
Next i
Application.ScreenUpdating = True
ThisWorkbook.Sheets("Vorlage_Colli").Visible = False 'Vorlage Colli unsichtbar machen
End Sub

Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 09:27:45
Max2
Hallo,
habe den Code ein bisschen ergänzt/verändert.
Der Button wird jetzt aus den Kopien gelöscht und das Vorlagen Blatt wird unsichtbar gemacht.
Du musst es dann eben bei bedarf durch anderen Code oder in diesem Code an gewünschter stelle wieder Sichtbar machen.
Hier der "Neue":

Option Explicit
Sub Copy_Colli()
Dim wscopy As Worksheet
Dim wscolli As Worksheet
Dim counter As Integer
Dim lzeile As Long
Dim sname As String
Dim rng, c As Range
Dim maxcopys As Long
Dim i
Dim sh As Shape 'Neu! um Button zu entfernen
Set wscolli = ThisWorkbook.Sheets("Gesamtpackliste")
With wscolli
lzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(13, 1), .Cells(lzeile, 1))
For Each c In rng
If IsNumeric(c.Value) And c.Value  "" Then
counter = counter + 1
End If
Next c
End With
Set wscopy = ThisWorkbook.Sheets("Vorlage_Colli")
Application.ScreenUpdating = False
For i = 1 To counter
Application.DisplayAlerts = False
maxcopys = ThisWorkbook.Sheets.Count
wscopy.Copy After:=ThisWorkbook.Sheets(maxcopys)
Application.CutCopyMode = False
ActiveSheet.Name = "Colli_" & i
For Each sh In ActiveSheet.Shapes
sh.Delete 'Button in Kopie Löschen
Next sh
Application.DisplayAlerts = True
Next i
Application.ScreenUpdating = True
ThisWorkbook.Sheets("Vorlage_Colli").Visible = False 'Vorlage Colli unsichtbar machen
End Sub

Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 10:31:49
Christian
Danke, das ist super so! jetzt muss ich es nur noch schaffen das die Seiten auch mit den passenden Daten bestückt werden um diesen Typ Makro auch zu verstehen.
LG
Christian
AW: kopiert bis dato nur tabellenblatt
14.02.2017 11:09:10
Max2
Welche Daten müssen denn übertragen werden und wohin sollen Sie im Blatt Colli_x ?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 11:41:10
Christian
Die Daten kommen aus der Tabelle Gesamtpackliste aus der jeweiligen Collizeile (Colli_1,2,3 etc)
Die Vorlage Vorlage_Colli ist im Grunde ein Beispiel für den ersten Colli.
Es müssen also an Daten rein:
Colli Zahl (oben rechts)
Verpackungsart, Abmessungen in eine Zeile, in der selben Zeile steht ganz rechts das Taragewicht
Benennung (erst Deutch, rechts daneben Englisch)
Stückzahl (links neben xNetto/net)
Das Nettogewicht (rechts neben xNetto/net)
Das Bruttogewicht errechnet sich jede Seite selber ganz unten rechts aus.
Vielen dank für alles was du bislang schon gemacht hast! Du bist eine riesen Hilfe
Anzeige
Mir momentan zu viel arbeit
14.02.2017 13:58:01
Max2
Habe momentan ein bisschen mehr zutun und das kopieren und einfügen der Daten
ist eher eine Fleißarbeit als Problemstellung.
erstelle dir für alle Sachen die du kopieren und einfügen willst einfach
eine Variable z.B. "Inhalt_1", "Inhalt_2"... usw.
und dann ändere den Code ungefähr so ab (Ist nicht getestet!):

inhalt_1
inhalt_2
inhalt_3
inhalt_4
Set rng = .Range(.Cells(13, 1), .Cells(lzeile, 1))
For Each c In rng
If IsNumeric(c.Value) And c.Value  "" Then
counter = counter + 1
inhalt_1 = .Cells(xy).Value
inhalt_2 = .Cells(yx).Value
Application.DisplayAlerts = False
maxcopys = ThisWorkbook.Sheets.Count
wscopy.Copy After:=ThisWorkbook.Sheets(maxcopys)
application.CutCopyMode = False
ActiveSheet.Name = "Colli_" & counter
ActiveSheet.Cells(xy).Value = inhalt_1
For Each sh In ActiveSheet.Shapes
sh.Delete
Next sh
Application.DisplayAlerts = True
wscolli.Select
End If
Next c

Anzeige
AW: Mir momentan zu viel arbeit
14.02.2017 14:41:00
Christian
Meinst du für jede einzelne Zeile in der Gesamtpackliste eine Variable bilden, oder für z.B. Nettogewicht, Stückzahl etc. jeweils eine Variable und die *nimmt* sich die richtige Zeile raus?
Ich bin wie gesagt was VBA angeht noch komplett am Anfang, deswegen kann ich aus deinem letzten Code noch nichts wirklich herleiten bzw. verstehen
Aber, das du mir trotz viel Arbeit so hilfsbereit gegenüber trittst ehrt dich sehr, das du mir schon so viel weiter geholfen hast!
AW: Mir momentan zu viel arbeit
14.02.2017 15:01:12
Max2
Du bildest für dinge wie Nettogewicht etc. jeweils eine Variable, diese befüllst du dann zu Zeiten des Schleifendurchgangs mit den gewünschten Zellwerten.
Natürlich sollst du nicht jede Zelle einzeln angeben.
Du erstellst Variable x und y und sagst z.B. x = 1, y = 3,
dann sagst du Variable = .Cells(x, y).Value (x = Zeile, y = Spalte)
x = x + Wert wo der nächste Wert vorkommt.
y = das gleiche wie x
Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:34
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:40
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:41
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:41
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:51:42
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:10
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
Anzeige
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:15
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:15
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:21
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:22
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:52:22
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:53:17
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?
AW: kopiert bis dato nur tabellenblatt
14.02.2017 08:53:25
Christian
Ich danke dir soweit schon mal!
Das hilf mir enorm, vor allem übersichtlich geschrieben, sodass ich es nachvollziehen kann.
Was beim kopieren jetzt noch nicht ganz läuft ist, wenn ich die Vorlage ausblende (damit sie nicht mit ausgedruckt wird) und danach das makro ausführe, sind alle Tabellenblätter die erzeugt werden ebenfalls ausgeblendet.
Gibt's da noch eine Möglichkeit das zu ändern?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige