Makro funktioniert nur im Debug-Modus
#1
Hallo,

ich will aus einer Datei Screenshots erstellen.


Mit den Diagrammen (eigene Tabellenblätter) funktioniert alles.

Nur wenn ich von einer Tabelle ein Bild erzeugen will bekomme ich ein "weißes" Bild.

Ich habe eine simple Beispieldatei dazu erstellt.



Und jetzt kommt es - wenn ich aber das Makro "händisch" per F8 im Debugging durchlaufen lasse, dann funktioniert das Bilder erstellen sehr wohl.


Ich hab die Bilder dazu auch jeweils angehängt - und eben ein "Richtig" und ein "Falsch" angehängt.


Danke für eure Hilfe und viele Grüße
Daniel



Code vom Makro:


Sub Screenshots()



  Application.ScreenUpdating = False
  ActiveSheet.Range("A1:H11").CopyPicture Appearance:=xlScreen, Format:=xlPicture
  With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:H11").Width, Range("A1:H11").Height).Chart
      .Paste
      .Export "U:\Makro_Bilder_VBA_Test.jpg"
      .Parent.Delete
  End With
  Application.ScreenUpdating = True
 
 
End Sub


Angehängte Dateien Thumbnail(s)
       

.xlsm   Mappe1.xlsm (Größe: 16,66 KB / Downloads: 3)
Antworten Top
#2
Im Makromodul von Tabelle1:

Code:
Sub M_snb()
  Tabelle1.Range("A1:H11").CopyPicture

  With Tabelle1.ChartObjects(1).Chart
      If .Shapes.Count = 1 Then .Shapes(1).Delete
      .Paste
      .Export "G:\Makro_Bilder_VBA_Test.jpg"
  End With
End Sub


Angehängte Dateien
.xlsb   __picture_snb_001.xlsb (Größe: 16,48 KB / Downloads: 1)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hallo,

das funktioniert leider bei mir auch nicht.
Edit: jetzt funktioniert es insofern, als dass ich das "Bild" im Tabellenblatt habe.

ABER das will ich ja eigentlich genau nicht - ich möchte ja nur einfach die Excel-Zellen / Excel-Tabelle als eine jpg-Datei herausschreiben.



Das komisch ist ja auch, dass "mein" Code in einer anderen Excel-Datei seit Jahren schon problemlos funktioniert - und eben erst hier jetzt nicht mehr funktionieren will...

Kann sich das jemand erklären?


Zudem - warum funktioniert der Code im Debug-Modus aber im "scharfen" Modus nicht?


Grüße
Daniel
Antworten Top
#4
Selbstverständlich musst du
Code:
"G:\Makro_Bilder_VBA_Test.jpg"
anpassen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Hallo Daniel, 19 

schreibe es so: 21 


Code:
'..........
.Parent.Activate
.Paste
.Export "U:\Makro_Bilder_VBA_Test.jpg"

'..........

Ist ein Feature in neueren Excelversionen.
Antworten Top
#6
Hallo zusammen,

ja, was soll ich sagen - die Scheiße geht....!

Vielen Dank.

@snb: dass der Pfad angepasst werden muss war klar.


@all (und damit das für zukünftige Frager auch idiotensicher ist) hier noch der Code, der auch im normalen Modus durchläuft:

Code:
Sub Screenshots()



   Application.ScreenUpdating = False
   ActiveSheet.Range("A1:H11").CopyPicture Appearance:=xlScreen, Format:=xlPicture
   With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:H11").Width, Range("A1:H11").Height).Chart
      .Parent.Activate
      .Paste
      .Export "U:\Makro_Bilder_VBA_Test.jpg"
      .Parent.Delete
   End With
   Application.ScreenUpdating = True
   
   
End Sub



An der Stelle ein herzliches Dankeschön an alle, die mir hier geholfen haben.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste