Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Probleme mit Bildkopien

Forumthread: Probleme mit Bildkopien

Probleme mit Bildkopien
23.05.2025 11:21:02
Udo
Ich erstelle mit VBA nach Tabellendaten Zeichnungen, diese Zeichnung und die Daten dazu kopiere ich dann in ein Ausgabeblatt, das klappt auch alles ganz gut NUR
es geht um ca. 30 Seiten, das Makro mit dem Kopieren läuft und bei einem beliebigen Blatt (mal Blatt 2, mal Blatt 13 usw.) bleibt plötzlich alles stehen und die Fehlermeldung
"Laufzeitfehler '1004' Die Copy-Picture-Methode des Range-Objektes konnte nicht ausgeführt werden" oder "Laufzeitfehler '1004' Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden"

Es sind je nach den Kundenbedingungen immer andere Zeichnung an verschiedenen Blattpositionen, so das ich die Zeichnungen nur über den Zellbereich markieren und kopieren kann. Die Programmierung dazu sieht so aus:
Range("C10:G27").Select (in diesem Bereich befindet sich die Zeichnung)

Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Sheets("Ausgabe an Kunde Multi").Select
Range("I" & Abstand).Select (hierhin soll die Zeichnung kopiert werden)
ActiveSheet.Paste

Wie bereits geschrieben, mal funktioniert der Durchlauf, mal nicht. 'Und das auch auf immer verschiedenen Seiten.
Gibt es einen anderen Kopierbefehl, mit dem ich diese Probleme vermeiden kann ? ? ?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Bildkopien
23.05.2025 11:25:35
Udo
Achso, lasse ich das Makro/die Makros mit F8 durchlaufen, gibt es keine Fehlermeldung. Die Fehlermeldungen kommen nur wenn die Makros selbstständig laufen sollen
AW: Probleme mit Bildkopien
23.05.2025 18:51:53
daniel
Hi
probier mal, ob es besser läuft wenn du ohne Select und Selection programmierst.
dann hat dein Excel weniger im Hintergrund zu arbeiten, während der Code läuft.

Range("C10:G27").CopyPicture Appearance:=xlScreen, Format:=xlPicture


with Sheets("Ausgabe an Kunde Multi").Pictures.Paste
.Top = Sheets("Ausgabe an Kunde Multi").Range("I" & Abstand).top
.Left = Sheets("Ausgabe an Kunde Multi").Range("I" & Abstand).left
End With



Gruß Daniel
Anzeige
AW: Probleme mit Bildkopien
23.05.2025 12:04:44
MCO
Moin!

Kannst du nicht auf das Zeichnungsobjekt selbst zugreifen, statt den Zellbereich zu "fotografieren"?

In der Art:
        activesheet.Shapes("DeinBild").Copy

with Sheets("Ausgabe an Kunde Multi")
.Select
.Range("I" & Abstand).select
.Pictures.Paste
end with


Probiers mal...

Gruß, MCO
Anzeige
AW: Probleme mit Bildkopien
23.05.2025 18:41:07
Peter Trawinski
Dieses Problem kenne ich nur zu gut!

Meiner Meinung nach "überholt" sich da Excel beim Handling kopierter Bildinhalte manchmal selber.
Bedeutet: Offensichtlich ist manchmal der Kopierbefehl noch nicht komplett abgeschlossen, wenn er den Paste-Befehl durchführen soll.
Ich denke ein Fehler in Excel. Ggf. funken da ab und zu irgendwelche Hintergrundprozesse dazwischen.
Dazu passt, dass Single-Step-Abbarbeitung ("F8") immer fehlerfrei funktioniert.

Ich hatte das Problem immer nur beim Paste-Befehl. Ich hatte aber danach "einiges zu tun" (Grafiken gruppieren, ...) bis zum nächsten Copy-Befehl.
Ich vermute, dass bei dir auch der Abschluss des Paste-Befehls vom nächsten Copy-Befehl "überholt" wird.

Für mich hat eine zweistufige Lösung funktioniert:
1. DoEvents direkt vor dem kritischen Befehl (danach kam das Problem sehr viel seltener, war aber leider nicht völlig weg).
2. Nach DoEvents noch eine kurze Zeit warten - Wert experimentell ermitteln.

Erst mal keine schöne Lösung (mit Warten) - aber was solls - hat das Problem vollständig behoben!

So könnte das bei dir aussehen:


Sub DeineSub()
'...
Range("C10:G27").Select '(in diesem Bereich befindet sich die Zeichnung)
'Bekämpfung 'Copy'-Fehler:
DoEvents 'Das hat viel gebracht! Trotzdem noch ab und zu Fehler
Call Wait_ms(75) 'Hier mit Wert experimentieren
'
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Sheets("Ausgabe an Kunde Multi").Select
Range("I" & Abstand).Select '(hierhin soll die Zeichnung kopiert werden)
'Bekämpfung 'Paste'-Fehler:
DoEvents
Call Wait_ms(75) 'Hier mit Wert experimentieren
'
ActiveSheet.Paste
'...
Exit Sub

Private Sub Wait_ms(Anzahl_ms As Long)
'Wartet Anzahl_ms und kommt dann zurück

Dim lngEndTime As Long

lngTime = GetTickCount
lngEndTime = lngTime + Anzahl_ms
Do While GetTickCount lngEndTime And GetTickCount >= lngTime
DoEvents
Loop

End Sub

In einem anderen Modul (Ich habe es 'DeclareFunctions' genannt):
Option Explicit


Global lngTime As Long 'Start mit 'lngTime=GetTickCount'

'Für Messungen 1000tel Sekunden; Rückgabe: ms seit Systemstart, max. fast 25 Tage
Public Declare Function GetTickCount Lib "kernel32" () As Long 'ggf. umschreiben für Excel 64 Bit

Übrigens: Seit einem Jahr habe ich einen neuen PC mit u. A. sehr viel schnellerem RAM und ich konnte beide Hilfszeilen wieder aus'remark'en!
Anzeige
AW: Probleme mit Bildkopien
25.05.2025 19:16:10
Peter Trawinski
Na Udo? Irgendeinen Kommentar dazu?

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige