Clever-Excel-Forum

Normale Version: Screenshot per Button-Klick und automatisches Speichern mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Excel-Profis,
ich möchte gern ein Screenshot per Klick auf einen Button automatisch abgespeichert haben. Der Button ist schon da und der Code soweit geschreiben. Nur Speichert er ein Weißes Bild. Warum??? Huh

Code:

Sub TabelleExportierenAlsBild()
  Application.ScreenUpdating = False
  ActiveSheet.Range("A1:T35").CopyPicture Appearance:=xlScreen, Format:=xlPicture
  With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:T35").Width, Range("A1:T35").Height).Chart
      .Paste
      .Export "Y:\Stefan\kalkulator\kalk.jpg"
      .Parent.Delete
  End With
  Application.ScreenUpdating = True
End Sub

Wer kann mir helfen? Bitte nicht all zu kompliziert erklären, viel Ahnung von VBA habe ich nicht.
BigTHX ;o)
Hallo, 19

in neueren Excelversionen musst du das Chartobjekt aktivieren/selektieren. 21

Code:
Option Explicit
Sub TabelleExportierenAlsBild()
    Application.ScreenUpdating = False
    ActiveSheet.Range("A1:T35").CopyPicture Appearance:=xlScreen, Format:=xlPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:T35").Width, Range("A1:T35").Height).Chart
        .Parent.Activate
        .Paste
        .Export "C:\Temp\kalk.jpg"
        .Parent.Delete
    End With
    Application.ScreenUpdating = True
End Sub
DAAAAAAAANNNNNNKKKKKEEEEEE!!!!!!!
TOP! Funktioniert! Wär ich nie drauf gekommen. Mega! Du hast mein WE gerettet!! Danke

Hallo Case, darf ich noch ne kleine Zusatzfrage stellen?? 19

wie schreibe ich den Code um damit der Dateienname nicht kalk.jpg heißt, sondern immer der Inhalt der Zelle B1 genommen wird?

Sub TabelleExportierenAlsBild()
   
    Application.ScreenUpdating = False
    ActiveSheet.Range("A1:T35").CopyPicture Appearance:=xlScreen, Format:=xlPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:T35").Width, Range("A1:T35").Height).Chart
        .Parent.Activate
        .Paste
        .Export "Y:\Stefan\kalkulator\kalk.jpg"
        .Parent.Delete
    End With
    Application.ScreenUpdating = True

End Sub


Beste Grüße!! Stefan
Hallo, 19

schreibe es so (natürlich mit deinem Pfad dann): 21

Code:
.Export "C:\Temp\" & ActiveSheet.Range("B1").Value & ".jpg"
Es klappt. Mega Cool!! i´m HappY!!! Thx 18
Hallo Case,

das mit dem Screenshot läuft super!! Nur habe ich jetzt folgendes Problem: sobald ich das Blatt schütze kommt die Fehlermeldung [attachment=37840] beim Drücken des Buttons. Ich vermute es liegt am Eintrag ActiveSheet?? [attachment=37839] Was müsste man ändern damit die Funktion auch im aktivierten Blattschutz-Modus funktioniert?
Besten Dank im Voraus!! Blush Stefan
Hallöchen,

wenn Du den Blattschutz per Makro setzt hast Du noch die Option mit dem USERINTERFACEONLY ...
Hat Excel 2016 nicht
Einfügen ► Illustrationen ► Screenshot?

Wenn es der ganze Bildschirm sein soll, geht Druck

Dann gibt es noch das Snipping-Tool unter Windows.

Ich nutze lieber die mächtige Freeware Greenshot.

Gruß Ralf
Hallöle,
an welcher Stelle im VBA schütze ich das Blatt mit welchem Code?  Huh
 
Hallo, 19

schau mal hier: 21

UserInterfaceOnly...
Seiten: 1 2 3