Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
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 kopieren und speichern

Tabellenblätter kopieren und speichern
Bastian
Hallo zusammen,
da ich nach langem suchen nicht weiterkomme, hoffe und denke ich, dass mir weitergeholfen werden kann.
Kurz zu meinem Hintergrund: Nachdem ich Excel jahrelang eher zu Erstellung meines Stundenplans an der Uni genutzt habe, arbeite ich seit ca. 2 Jahren etwas intensiver damit und bin begeistert was man mit Formeln und VBA so alles anstellen kann und habe mittlerweile auch einige nützliche Dinge programmieren können.
Allerdings: Das meiste such ich mir aus dem Internet zusammen und passe es meinen Bedürfnissen an und nach etlichen Versuchen klappt es auch wie ich möchte.
Dadurch erschliesst sich mir zwar der Sinn und Zweck von manchem Befehl, aber bei weitem nicht alles.
Soviel dazu, damit man versteht, warum ich zwar einen ganzen Code posten kann, aber nicht selber auf die Lösung komme ;-)
Nun zum konkreten Problem:
Ich habe eine Arbeitsmappe in der ich Daten von Lieferanten aufgelistet habe.
Per Makro lasse ich für jeden Lieferanten ein eigenes Tabellenblatt erstellen, kopiere die Daten dahin, lösche Leerzeilen und richte das Format optimal aus.
Das klappt auch alles.
Der nächste Schritt wäre, dass jedes einzelne Tabellenblatt (mit Ausnahme des Stammtabellenblattes) in eine eigene Arbeitsmappe kopiert wird, diese Arbeitsmappe unter dem Tabellenblattnamen gespeichert und geschlossen wird.
Der Pfad wohin es gespeichert wird, habe ich im Makro hinterlegt.
Was passiert ist nun folgendes: Das erste Tabellenblatt wird korrekt kopiert, die Arbeitsmappe benannt und geschlossen - und das war es.
Irgendwie scheint die Schleife dann abzubrechen und ich verstehe nicht so recht warum.
Ich schätze mal, dass es irgendwie mit dem zählen zusammenhängt, aber nach zig Versuchen das zu beheben bin ich nun ratlos.
Der Code kommt nun anbei und vielen Dank schon mal für die Hilfe.
Bastian
Sub kopieren()
blatt = Array("LF1", "LF2", "LF3", "LF4")
For i = 0 To 3
On Error GoTo ende
Sheets(blatt(i)).Copy
Sheets(blatt(i)).SaveAs Filename:="C:\Test\" & Sheets(blatt(i)).Name & ".xls"
On Error GoTo 0
Next i
ende:
Exit Sub
End Sub

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

Betreff
Benutzer
Anzeige
AW: Tabellenblätter kopieren und speichern
16.09.2009 10:01:09
JogyB
Hi.
Mit dem Code wird ganz sicher nicht die erste Arbeitsmappe korrekt geschlossen.
Und das ist genau der Knackpunkt, da dann die neu erzeugte Arbeitsmappe die Aktive ist und dort dann das Tabellenblatt "LF2" kopiert werden soll - welches es aber nicht gibt.
Sub kopieren()
Dim i As Long
Dim blatt
Application.ScreenUpdating = False
blatt = Array("LF1", "LF2", "LF3", "LF4")
For i = 0 To 3
On Error GoTo ende
Sheets(blatt(i)).Copy
Sheets(blatt(i)).Parent.Close True, "C:\temp\" & Sheets(blatt(i)).Name & ".xls"
On Error GoTo 0
Next i
ende:
Application.ScreenUpdating = True
Exit Sub
End Sub
Und gewöhne Dir an, Deine Variablen zu deklarieren sowie den Code einzurücken. Sonst blickt bei längerem Code niemand mehr durch.
Gruss, Jogy
Anzeige
AW: Tabellenblätter kopieren und speichern
16.09.2009 10:09:02
Bastian
Das ist ja perfekt! Das klappt direkt!
Vielen Dank dafür!
An den einrücken des Codes werde ich denken in Zukunft.
Aber was genau meinst Du mit dem deklarieren der Variablen?
Besten Dank nochmal für die Hilfe - das hilft mir wirklich weiter!
Viele Grüße
Bastian
AW: Tabellenblätter kopieren und speichern
16.09.2009 10:34:02
JogyB
Hi.
Die DIM Anweisungen. Du hast einfach irgendwelche Variablen in Deinem Code verwendet, ohne diese vorher mit einer DIM Anweisung festzulegen. Wenn der Code mal etwas länger wird, dann blickst Du irgendwann nicht mehr durch, was die Variable jetzt eigentlich bedeutet.
Setz am besten im VB-Editor Extras - Optionen - Editor den Haken bei "Variablendeklaration" erforderlich. Das setzt automatisch "Option Explicit" an den Beginn des Codes. Dann meckert Excel bei der Ausführung des Makros, wenn eine Variable nicht deklariert wurde.
Gruss, Jogy
Anzeige
AW: Tabellenblätter kopieren und speichern
16.09.2009 10:37:08
Bastian
Hi,
habs gerade gemerkt.
i war nicht deklariert.
Ich werd den Tipp beherzigen mit der Erfordernis der Variablendeklaration.
Danke nochmal und bis zum nächsten Mal.
Viele Grüße
Bastian
AW: Tabellenblätter kopieren und speichern
16.09.2009 10:43:57
JogyB
Hi.
blatt war auch nicht deklariert.
Gruss, Jogy

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige