VBA - 1:1-Dateikopie
Guten Morgen!
Mit Hilfe des www habe ich mir einen Code zusammengebastelt, der es ermöglicht eine bestehende Datei 1:1 zu kopieren.
Anschliessend werden die Formel durch Werte ersetzt, einige Blätter gelöscht und die z. B. die Kommentare entfernt.
Das Makro läuft in der Originaldatei (ca. 2 MB gross) sehr lage, sodass ich vermute, dass man es optimieren kann. Leider fehlt mit dazu allerdings das Fachwissen.
Vielleicht hat ja der eine oder andere einen Tipp (oder auch mehrerer) für mich und kann meine Fragen beantworten.
Meinen Code findet man in der Datei unter
http://www.uploadagent.de/show-90565-1208149373.htmlVorweg schon mal ein herzliches Dankeschoen fuer die hoffentlich zahlreichen Anregungen.
Tom
Antwort schreiben
Antwort 1 von Flupo vom 14.04.2020, 08:04 Options
Oft erreicht man schon eine Menge, wenn man für die Laufzeit des Makros die Bildschirmaktualisierung ausschaltet.
Das geht mit folgender Befehlszeile:
Application.ScreenUpdating = False
Am Ende wird dann mit
Application.ScreenUpdating = True
wieder eingeschaltet.
Gruß Flupo
Antwort 2 von Tomschi vom 14.04.2020, 09:17 Options
Hi Flupo!
Danke, dass Du Dir mein Problem durch den Kopf gehen hast lassen.
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
habe ich schon eingebaut.
Vielleicht kann man z. B. das Löschen vereinfachen.
Ciao
Tom
Antwort 3 von Flupo vom 14.04.2020, 09:20 Options
Zitat:
Vielleicht kann man z. B. das Löschen vereinfachen.
Dazu müsste man wissen, wie du es gelöst hast.
Gruß Flupo
Antwort 4 von Flupo vom 14.04.2020, 09:21 Options
OOPS. Wenn man lesen würde... Sry.
Antwort 5 von Flupo vom 14.04.2020, 09:55 Options
Ich hätte das Problem ein wenig anders angefangen.
Da in der Zieldatei nur einige Tabellenblätter benötigt werden, würde ich auch nur diese in eine neue Datei kopieren. Damit hast du auch nicht das Problem mit der Entfernung des Codes (oder irre ich mich hier?).
Sheets(Array("soll bleiben01", "soll bleiben02", "soll bleiben03", _
"soll bleiben04", "soll bleiben05")).Copy
Die Befehlszeile mit dem "CodeModule" führt bei mir eh zu einer Fehlermeldung ("Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher.").
Gruß Flupo
Antwort 6 von Tomschi vom 14.04.2020, 12:19 Options
Mahlzeit!
Guter Ansatz, aber da es teilweise Blätter mit dem jeweiligen Tagesdatum geben KANN (die Betonung liegt auf KANN), erstelle ich eben eine 1:1 Kopie und lösche dann jene Blätter, die auf jeden Fall entfernt werden sollen.
Ausserdem bin ich mir bei Deinem Code nicht sicher, ob auch tatsächlich die Seitenformatierungen erhalten bleiben.
Also bei mir funktioniert das Löschen des Makroinhaltes aus Tabelle4. Es kann durchaus sein, dass auch in den vorhandenen Blättern ein Code entfernt werden muss.
Danke für Deine Unterstützung.
Tom