Code funktioniert nur im Einzelschritt F8

Bild

Betrifft: Code funktioniert nur im Einzelschritt F8
von: Gianmarco Cathomen
Geschrieben am: 27.07.2015 23:15:20

Guten Abend zusammen,
ich weiss es gibt zu diesem Thema schon zwei, drei Einträge in diesem Forum, aber ein allgemeingültiger Lösungsansatz war daraus nicht erkennbar, daher hoffe ich nun direkt auf Eure grosse Expertise.
Mein VBA Code erstellt aus verschiedenen Exceltabllen eine CSV-Datei, um diese dann später in einen SQL-Server zu laden. Nun muss ich bei gewissen Quell-Arbeitsmappen auch die Formatierung der Zellen auslesen und in der CSV hinterlegen
Der Teilbereich des Codes, wo die Formate kopiert werden lautet folgendermassen:

Programmierdatei.Sheets(1).Activate
Range("I2:O" & letzteZeile).Select
Selection.Copy
Exportdatei.Activate
Cells(2, 9).Select
Selection.PasteSpecial Paste:=xlPasteFormats

Hinweis: Programmierdatei und Exportdatei sind dabei geöffnete Arbeitsmappen
Nun mein Problem:
Wenn ich diesen Teil des Makros per Einzelschritt (F8) durchgehe, dann werden die Formate brav kopiert, lass ich es mit F5 laufen, dann tut er dies nicht.
Ich habe Verschiedenes versucht (bspw. auch Zeitverzögerungen eingebaut mit Application.Wait Now + TimeValue("00:00:01") oder es mit dem Kopieren direkt versucht Sheets(1).Range("I2:O" & letzteZeile).Copy Exportdatei.Sheets(1).Cells(2,9)
Leider bis jetzt ohne Erfolg. Hat jemand von Euch mal ein ähnliches Verhalten erlebt. Bin um jeden Tipp extrem dankbar.
Danke und schönen Abend
Gianmarco

Bild

Betrifft: AW: Code funktioniert nur im Einzelschritt F8
von: Daniel
Geschrieben am: 28.07.2015 00:01:10
Hi
probier mal obs besser geht, wenn du ohne Select arbeitest.
Selektieren muss nur der Maususer, ein Excelmakro muss das nicht, weil es die Objekte direkt ansprechen kann. Leider zeichnet der Recorder die Aktionen des Maususers 1:1 auf, deswegen wird diese unnötigte und Fehlerträchtige Selektiererei oft in die Makros übernommen.


Programmierdatei.WorkSheets(1).Range("I2:O" & letzteZeile).Copy
 Exportdatei.WorkSheets(1).Cells(2, 9).PasteSpecial Paste:=xlPasteFormats
Gruß Daniel

Bild

Betrifft: AW: Code funktioniert nur im Einzelschritt F8
von: Gianmarco
Geschrieben am: 28.07.2015 11:25:18
Hi Daniel
Vielen Dank für Deine schnelle Antwort. Bei Deinem Vorschlag läuft das Makro zwar durch, kopiert aber selbst bei der Einzelschrittausführung die Formatierung nicht mit. Daher hat mir Dein Vorschlag leider nicht zum grossen Durchbruch verholfen.
Gruss
Gianmarco

Bild

Betrifft: AW: Code funktioniert nur im Einzelschritt F8
von: Gianmarco
Geschrieben am: 28.07.2015 11:47:33
Hi
ich habe nun den Code umgeschrieben und erfülle die Useranforderung anders. Danke trotzdem für Eure Unterstützung.
Gruss
Gianmarco

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte anhand Kurve verteilen"