Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Screenshot per Button-Klick und automatisches Speichern mit VBA
#1
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)

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#2
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
________
Servus
Case
Antworten Top
#3
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#4
Hallo, 19

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

Code:
.Export "C:\Temp\" & ActiveSheet.Range("B1").Value & ".jpg"
________
Servus
Case
Antworten Top
#5
Es klappt. Mega Cool!! i´m HappY!!! Thx 18

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#6
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#7
Hallöchen,

wenn Du den Blattschutz per Makro setzt hast Du noch die Option mit dem USERINTERFACEONLY ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Hallöle,
an welcher Stelle im VBA schütze ich das Blatt mit welchem Code?  Huh
 

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#10
Hallo, 19

schau mal hier: 21

UserInterfaceOnly...
________
Servus
Case
Antworten Top


Gehe zu:


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