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

Forumthread: VBA: Screenshot von Bereich soll als Bild gespeichert werde

VBA: Screenshot von Bereich soll als Bild gespeichert werde
31.01.2024 22:20:07
weislioh
Hallo,
danke schon einmal fürs durchlesen und auch für eure Hilfe!
Das Marko soll einen Screenshot von einem bestimmten Bereich machen und diesen als Bilddatei im Verzeichnis des Excels abspeichern.
Schön wäre wenn das Makro ausgeführt wird wenn man speichert.
Ich hatte schon einmal so ein Makro kann es aber leider nicht mehr finden :(
Alle Lösungen die ich gefunden habe erzeugen keinen Screenshot sondern ein Diagramm.
Mache ich da vl einen Fehler?
Ziel ist es dieses Bild als Desktophintergrund zu verwenden.
Falls jemand eine andere Lösung hat probier ich sie gerne.

LG weislioh
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Screenshot von Bereich soll als Bild gespeichert werde
31.01.2024 23:39:37
Oberschlumpf
Hi,

sicher machst du einen Fehler. Denn als Ergebnis erhältst du ja ein Diagramm und nicht eine Grafik.

Lies das hier mal durch. Da sollte deine Frage beantwortet werden.
https://www.herber.de/forum/archiv/1712to1716/1714511_Bereich_als_Bild_speichern.html

Ciao
Thorsten
Anzeige
AW: VBA: Screenshot von Bereich soll als Bild gespeichert werde
04.02.2024 13:20:38
weislioh
Grüß dich!
Danke für den Hinweis. Funktioniert schon.
Das mit dem Speichern als Makroausführung funktioniert auch, allerdings muss ich zweimal auch speichern klicken bis das Bild erstellt wird.
Das hab ich im Fenster "DieseArbeitsmappe":

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Call Range_To_Image

End Sub

Hat da jemand noch einen Tipp, damit ich nur einmal klicken muss?
Danke!
LG weislioh
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Screenshot von markierten Zellen in Excel speichern


Schritt-für-Schritt-Anleitung

Um einen Screenshot von markierten Zellen in Excel zu erstellen und diesen als Bild zu speichern, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub Range_To_Image()
       Dim rng As Range
       Dim ws As Worksheet
       Dim pic As Object
       Dim savePath As String
    
       ' Setze den gewünschten Bereich
       Set ws = ThisWorkbook.Sheets("DeinBlattname")
       Set rng = ws.Range("A1:B10") ' Ändere den Bereich nach Bedarf
    
       ' Screenshot vom Bereich erstellen
       rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    
       ' Bild in eine neue Folie einfügen
       Set pic = ws.Pictures.Paste
    
       ' Speicherort für das Bild festlegen
       savePath = ThisWorkbook.Path & "\Screenshot.png" ' Speicherort anpassen
    
       ' Bild als PNG speichern
       pic.SaveAs savePath
       pic.Delete
    
       MsgBox "Screenshot gespeichert unter: " & savePath
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle Range_To_Image und klicke auf Ausführen.

Du kannst das Makro so einstellen, dass es automatisch bei jedem Speichern ausgeführt wird:

  1. Gehe zu DieseArbeitsmappe im VBA-Editor.
  2. Füge den folgenden Code hinzu:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       Call Range_To_Image
    End Sub

Häufige Fehler und Lösungen

  • Diagramm statt Bild: Wenn du statt eines Bildes ein Diagramm erhältst, überprüfe, ob du CopyPicture korrekt verwendest. Der Code muss sicherstellen, dass der richtige Bereich ausgewählt ist.

  • Zweimal speichern nötig: Um die doppelte Speichervorgang zu vermeiden, teste den oben genannten Code für das Speichern beim ersten Speicherbefehl. Möglicherweise liegt es an der Reihenfolge der VBA-Befehle.


Alternative Methoden

Falls du kein VBA nutzen möchtest, kannst du auch die integrierte Screenshot-Funktion verwenden:

  1. Wähle den gewünschten Bereich in Excel aus.
  2. Drücke Windows + Shift + S (Windows 10/11), um den Snipping Tool zu öffnen.
  3. Wähle den Bereich aus, den du speichern möchtest.
  4. Füge das Bild in ein Bildbearbeitungsprogramm ein und speichere es.

Praktische Beispiele

Hier ist ein einfaches Beispiel, um den Bereich A1:B10 als Bild zu speichern:

Set rng = ws.Range("A1:B10") ' Screenshot von den Zellen A1 bis B10

Ändere den Bereich nach Bedarf, um Screenshots von unterschiedlichen Zellen zu erstellen.


Tipps für Profis

  • Verwende relative Zellbezüge: Wenn du das Makro in verschiedenen Arbeitsblättern verwenden möchtest, kannst du den Bereich dynamisch anpassen.

  • Automatisiere den Prozess: Kombiniere das Screenshot-Makro mit weiteren Automatisierungen, um das gesamte Reporting in Excel effizienter zu gestalten.


FAQ: Häufige Fragen

1. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten aktuellen Excel-Versionen funktionieren, jedoch ist die VBA-Funktionalität in Excel für Mac etwas eingeschränkt.

2. Kann ich das Bild in einem anderen Format speichern?
Ja, du kannst das Format in der SaveAs-Methode anpassen, z.B. .jpg, .bmp etc., je nach deinen Anforderungen.

3. Was mache ich, wenn ich das Makro nicht ausführen kann?
Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind. Gehe dazu auf Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige