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

Forumthread: Grafik mit VBA als Bild speichern

Grafik mit VBA als Bild speichern
20.08.2018 10:12:09
olga
Guten Morgen,
ich möchte einen Tabellenbereich als Grafik speichern.
Die Datei wird zwar erstellt (2KB), jedoch ist diese leer.
Was mache ich falsch?
Danke!
Gruß, Olga
https://www.herber.de/bbs/user/123425.xlsm
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probiere es mal so...
20.08.2018 12:48:24
olga
Hallo Case,
Danke erstmal für Deine Unterstützung!
leider ist auch hier irgendwo ein Fehler.
Ich habe mal '.Parent.Delete entfernt und festgestellt, das ein Chart und ein Diagramm erstellt wird.
Beide sind übereinander gelagert. Im Chart sind Daten das Diagramm ist leer.
Gruß, Olga
Anzeige
Klappt bei mir...
20.08.2018 13:46:49
Case
Hallo Olga, :-)
... problemlos. ;-)
Hast Du die Datei mal auf der Platte gespeichert und dann das Makro "Main" ausgeführt? Was passiert dann? Bei mir geht es wie gesagt. Nimm mal statt "Musterbereich.gif", "Musterbereich.jpg" oder besser "Musterbereich.png". ;-)
Servus
Case

Anzeige
AW: Klappt bei mir...
20.08.2018 15:26:48
olga
Hallo Case,
ich habe nun Deinen Vorschlag angenommen. Zuerst funktionierte es wieder nicht.
Danach habe ich den Computer 3x neu gestartet und siehe da, jetzt zeigt es jede der Möglichkeiten an.
Danke!
Gruß, Olga
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Grafik mit VBA als Bild speichern


Schritt-für-Schritt-Anleitung

Um einen Tabellenbereich als Grafik zu speichern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel 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 (DeineDatei.xlsx) und wähle Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub GrafikSpeichern()
        Dim rng As Range
        Dim chartObj As ChartObject
        Set rng = ThisWorkbook.Worksheets("Tabelle1").Range("A1:B10") 'Ändere den Bereich entsprechend
        Set chartObj = ThisWorkbook.Worksheets("Tabelle1").ChartObjects.Add(Left:=rng.Left, Width:=rng.Width, Top:=rng.Top, Height:=rng.Height)
        chartObj.Chart.SetSourceData Source:=rng
        chartObj.Chart.Export Filename:="C:\Pfad\zu\deinem\Bild.png", FilterName:="PNG" 'Ändere den Pfad entsprechend
        chartObj.Delete
    End Sub
  4. Ändere den Bereich und den Speicherort im Code nach Deinen Bedürfnissen.

  5. Speichere die Datei und führe das Makro GrafikSpeichern aus.

  6. Überprüfe den angegebenen Pfad: Dein Bild sollte nun als PNG-Datei gespeichert sein.


Häufige Fehler und Lösungen

  • Leeres Bild: Wenn das gespeicherte Bild leer ist, stelle sicher, dass der angegebene Bereich (rng) Daten enthält. Überprüfe auch, ob Du die Datei korrekt gespeichert hast, bevor Du das Makro ausführst.

  • Dateiformat: Wenn das Bild nicht korrekt gespeichert wird, teste verschiedene Formate wie .jpg oder .gif, wie im Thread erwähnt.

  • Makro funktioniert nicht: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe dazu zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die integrierte Funktionalität von Excel nutzen:

  1. Bereich markieren: Wähle den Bereich aus, den Du speichern möchtest.
  2. Kopiere den Bereich: Drücke Strg + C.
  3. Öffne ein Bildbearbeitungsprogramm (z.B. Paint).
  4. Füge den Bereich ein: Drücke Strg + V.
  5. Speichere das Bild im gewünschten Format.

Diese Methode ist einfach und erfordert keine Programmierkenntnisse.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das Du direkt in Deine Excel-Datei einfügen kannst:

  • Wenn Du ein Diagramm in einer Excel-Tabelle hast, kannst Du es ebenfalls mit VBA als Bild speichern:

    Sub DiagrammSpeichern()
        Dim chartObj As ChartObject
        Set chartObj = ThisWorkbook.Worksheets("Tabelle1").ChartObjects(1) 'Ändere die Indexnummer je nach Diagramm
        chartObj.Chart.Export Filename:="C:\Pfad\zu\deinem\Diagramm.png", FilterName:="PNG"
    End Sub

Ändere die Indexnummer, um das richtige Diagramm auszuwählen.


Tipps für Profis

  • Verwende den richtigen Dateipfad: Achte darauf, dass der Pfad, den Du im VBA-Code angibst, existiert. Sonst wird das Bild nicht gespeichert.

  • Automatisiere den Prozess: Du kannst das Makro so anpassen, dass es automatisch im Hintergrund läuft, wenn Du eine bestimmte Aktion in Excel ausführst.

  • Experimentiere mit verschiedenen Formaten: Teste die Speicherung in verschiedenen Formaten (PNG, JPG, GIF), um die beste Qualität für Deine Grafiken zu finden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Bild die richtige Größe hat?
Achte darauf, dass Du die Größe des ChartObjects im VBA-Code entsprechend anpasst, sodass es den Bereich genau abdeckt.

2. Was mache ich, wenn ich eine Fehlermeldung bekomme?
Überprüfe den VBA-Code auf Tippfehler oder falsche Referenzen. Achte auch darauf, dass das Makro in einem aktiven Arbeitsblatt ausgeführt wird.

3. Kann ich mehrere Bereiche gleichzeitig speichern?
Ja, Du kannst eine Schleife im VBA-Code verwenden, um mehrere Bereiche in einem Durchgang zu speichern.

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