Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereich als Bild speichern.

Bereich als Bild speichern.
24.09.2019 14:50:04
Marlo
Hallo liebe Excel-Freunde,
Ich habe vor, einen bestimmten Bereich als Bild an einem Ort abzuspeichern.
Ich habe das ganze bereits hier gefunden:
https://www.herber.de/forum/archiv/1128to1132/1130567_Grafik_oder_Bereich_mit_VBA_als_Bild_speichern.html
Da ich noch VBA-Anfänger bin, habe ich den zweiten Code benutzt. Dieser sah für mich leichter aus.
Leider speichert sich das Bild in weiß und ohne Inhalt ab.
In folgender Quelle wurde dann vorgeschlagen, eine leichte Änderung vorzunehmen.
http://www.office-loesung.de/ftopic568394_0_0_asc.php
Dies funktioniert leider auch nicht. Kennt ihr da noch eine weitere Möglichkeit?
Optimalerweise soll das Bild als PNG/JPG abgespeichert werden.
Vielleicht könnt Ihr mir dabei helfen. :)
Vielen Dank schonmal,
Mit freundlichen Grüßen
Marlo
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich als Bild speichern.
24.09.2019 15:02:22
Torsten
Hallo Marlo,
kann ich nicht nachvollziehen. Habe den Code bei mir getestet. Laeuft.
Du musst natuerlich im Code den Tabellennamen anpassen von dem du das Bild machst. Viellecht ist die Tabelle leer, von der DU das Bild machst?
Gruss Torsten
AW: Bereich als Bild speichern.
24.09.2019 15:28:37
Marlo
Hallo Torsten,
mein aktueller Code sieht folgendermaßen aus:

Option Explicit
Sub Range_To_Image()
Dim objPict As Object, objChrt As Chart
Dim rngImage As Range, strFile As String
On Error GoTo ErrExit
With Sheets("KW") 'Tabellenname - Anpassen!'
Set rngImage = .Range("B1:I24")
rngImage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
Set objPict = .Shapes(.Shapes.Count)
strFile = "C:\Tempexc\Migration.jpg" 'Pfad und Dateiname für das Bild'
objPict.Copy
Set objChrt = .ChartObjects.Add(1, 1, objPict.Width, objPict.Height).Chart
objChrt.Paste
objChrt.Export strFile
objChrt.Parent.Delete
objPict.Delete
End With
ErrExit:
Set objPict = Nothing
Set objChrt = Nothing
Set rngImage = Nothing
End Sub
Sowohl Tabellenname als auch Bereiche habe ich angepasst.
Den ausgewählten Bereich habe ich hier angehängt:
Userbild
Grüsse
Marlo
Anzeige
AW: Bereich als Bild speichern.
24.09.2019 18:17:07
Nepumuk
Hallo Marlo,
teste mal:
Option Explicit

Public Sub Range_To_Image()
    
    Const FILE_PATH As String = "C:\Tempexc\Migration.jpg" 'Pfad und Dateiname für das Bild'
    
    Dim objChrt As Chart
    Dim rngImage As Range
    
    With Worksheets("KW") 'Tabellenname - Anpassen!'
        
        Set rngImage = .Range("B1:I24")
        
        rngImage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
        
        Set objChrt = .ChartObjects.Add(1, 1, rngImage.Width, rngImage.Height).Chart
        
        With objChrt
            .Parent.Activate
            .Paste
            .Export FILE_PATH, "JPG"
            .Parent.Delete
        End With
    End With
    
    Set objChrt = Nothing
    Set rngImage = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Bereich als Bild speichern.
25.09.2019 09:05:53
Marlo
Hallo Nepumuk,
das sieht super aus. Funktioniert einwandfrei!
Vielen vielen lieben Dank!
Warum dann offen? owt
25.09.2019 09:09:09
Torsten
AW: Warum dann offen? owt
26.09.2019 14:24:44
Marlo
Ich habe das Häckchen wohl fälschlicherweise gesetzt. Dachte es wäre sowas wie eine Zustimmung zur Verarbeitung :D
Häckchen ist jetzt nicht mehr gesetzt. Sollte also geschlossen sein.
Anzeige
wieder offen
24.09.2019 15:28:40
Torsten
Ich nehms zurueck.
Du hast recht. Wenn ich den Code normal durchlaufen lasse, kommt bei mir auch nur ein weisses Feld mit Rand raus.
Vorher hab ichs im Einzelschrittmodus gemacht. Da hats funktioniert. Merkwuerdig.
Wieder offen.
Gruss

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bereich als Bild speichern in Excel


Schritt-für-Schritt-Anleitung

Um einen bestimmten Bereich in Excel als Bild zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code speichert den ausgewählten Bereich als JPG-Datei.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere den folgenden Code in das Modul:
Option Explicit
Sub Range_To_Image()
    Dim objPict As Object, objChrt As Chart
    Dim rngImage As Range, strFile As String
    On Error GoTo ErrExit
    With Sheets("KW") ' Tabellenname - Anpassen!
        Set rngImage = .Range("B1:I24")
        rngImage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
        Set objChrt = .ChartObjects.Add(1, 1, rngImage.Width, rngImage.Height).Chart
        With objChrt
            .Parent.Activate
            .Paste
            .Export "C:\Tempexc\Migration.jpg", "JPG" ' Pfad und Dateiname für das Bild
            .Parent.Delete
        End With
    End With
ErrExit:
    Set objChrt = Nothing
    Set rngImage = Nothing
End Sub
  1. Ändere den Tabellennamen und den Speicherort im Code nach Bedarf.
  2. Führe das Makro aus, um den Bereich als Bild zu speichern.

Häufige Fehler und Lösungen

  • Das Bild wird leer oder weiß gespeichert: Überprüfe, ob der angegebene Bereich auch tatsächlich Daten enthält. Manchmal kann es helfen, den Code im Einzelschrittmodus auszuführen, um zu sehen, wo der Fehler liegt.

  • Fehlermeldungen beim Ausführen des Codes: Stelle sicher, dass der Pfad, den du für das Bild angegeben hast, existiert und du die notwendigen Berechtigungen hast, um dort zu speichern.


Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch die folgende Methode ausprobieren:

  1. Wähle den Bereich in deiner Excel-Tabelle aus.
  2. Klicke auf Start > Kopieren > Als Bild kopieren.
  3. Wähle die gewünschten Optionen aus und klicke auf OK.
  4. Füge das Bild in ein Grafikprogramm (z.B. Paint) ein und speichere es dort als JPG oder PNG.

Praktische Beispiele

  • Excel Tabelle als Bild speichern: Du kannst mit dem VBA-Code einen bestimmten Bereich einer Excel-Tabelle als Bild speichern, indem du die Range-Parameter im Code anpasst.

  • Excel Auswahl als Bild speichern: Der gleiche Code kann genutzt werden, um eine Auswahl an Zellen zu speichern. Ändere einfach die Range im Code entsprechend.


Tipps für Profis

  • Nutze die Möglichkeit, den Bildtyp im VBA-Code anzupassen, um sowohl JPG als auch PNG zu exportieren. Ändere dazu die Export-Zeile im Code:
.Export "C:\Tempexc\Migration.png", "PNG"
  • Teste den Code zunächst in einer kleinen Excel-Datei, um sicherzustellen, dass alles funktioniert, bevor du ihn auf größere Datenmengen anwendest.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Bereiche gleichzeitig als Bild speichern?
Ja, du kannst mehrere CopyPicture-Befehle im VBA-Code verwenden und sie nacheinander speichern.

2. Ist es möglich, das Bild direkt in die Zwischenablage zu kopieren?
Ja, du kannst das Bild in die Zwischenablage kopieren, indem du objPict.Copy verwendest, anstatt es zu exportieren.

3. Welche Excel-Version wird benötigt?
Der bereitgestellte VBA-Code funktioniert in Excel 2010 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige