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

Forumthread: Per VBA Daten zu einem Diagramm hinzufügen

Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 01:12:31
Martin
Hi,
ich stehe total auf dem Schlauch und sämtliche forums-/google-suchen haben mir nicht weitergeholfen.
Folgendes ist der Fall:
Ich möchte Daten aus einer Tabelle dynamisch in ein Balkendiagramm hinzufügen und zwar nicht als new series sondern in die existierende. Das Problem ist, das aus der jeweiligen Zeile nicht jede Spalte miteingefügt werden soll (z.B. B12:X12), sondern nur jede Dritte (B12, E12, usw.).
Die letzte gefüllte Spalte wird ausgelesen und gibt mir den Max-Wert. Somit soll das Ganze beliebig erweiterbar sein.
Ich habe mich jetzt vier Stunden an einer Schleife probiert, die über Range(Cells(12, i) die Daten hinzufügen soll, habe mal mit .extend mal mit .add probiert und mehrfach den Rechner ins Koma geschickt oder die 1004 angezeigt bekommen. Jetzt ist nix mehr drin in meiner Birne und ich bin echt ratlos...
Kann mir jemand von euch da draußen helfen ?
Das muss doch irgendwie hinzukriegen sein ? Oder sehe ich den berühmten Wald vor lauter Bäumen nicht ?
Ich bin für jede Hilfe äußerst dankbar... ;)
Martin

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 05:03:27
Wuxinese
Hallo Martin,
ich habs mit einer Hilfstabelle, die dem Diagramm zugrunde liegt, geloest. In die kopiere ich alle 'Ins-Diagramm-Daten' aus der eigentlichen Datentabelle. Ich hoffe, Du kannst mit https://www.herber.de/bbs/user/45348.xls was anfangen.
Gruss
Rainer

Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 07:50:00
Martin
Hab besten Dank, Rainer, das ist in der Tat der Wald, den ich nicht gesehen. ;)
Das Problem war wohl, dass ich unbedingt alles über vba abfeiern wollte und das mit collections etc. probiert habe - dabei ist das natürlich die einfachere Lösung...
(!) Falls aber trotzdem nochmal jemand über diesen Thread stolpert, der mir sagen kann. ob ich sowas nicht auch mit einer collection machen kann, die ich in einer Schleife fülle (oder irgendsowas vom Prinzip her ähnliches, sprich komplett per VBA) und ob so etwas Leistungstechnisch überhaupt Sinn macht (ich generiere auf Klick bis zu 20 Diagramme aus den gewählten Zeilen), wäre ich "saudankbar" !!! ;)
Erstmal werde ich Rainers Lösung verwenden...

Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 08:00:00
Beverly
Hi Martin,
meinen Vorschlag von 07:28:51 hast du schon getestet?
Bis später,
Karin

AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 08:06:00
Martin
Grad erst gelesen, Sorry... Hab schon drauf geantwortet... ;)

AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 07:28:51
Beverly
Hi Martin,
der einfachste Weg: lies die Werte als StringArray ein. Du musst allerdings beachten, dass die Anzahl Zeichen im Array ca. 200 nicht übersteigen darf.

Sub dia()
Dim chDiagramm As Chart
Dim inSpalte As Integer
Dim strWerte As String
Set chDiagramm = ActiveSheet.ChartObjects(1).Chart
For inSpalte = 2 To IIf(IsEmpty(Cells(15, Columns.Count)), Cells(15, Columns.Count).End( _
xlToLeft).Column, Columns.Count) Step 3
strWerte = strWerte & "," & Cells(15, inSpalte)
Next inSpalte
strWerte = Mid(strWerte, 2)
chDiagramm.SeriesCollection(1).Values = strWerte
End Sub


________________________________________

Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 08:00:00
Martin
Hi Beverly,
dank dir! 200 Zeichen ist in der Tat recht schwach....
Allerdings kann ich ja auch die Information worksheets("xy").Range(Cells() beim Auslesen der Daten wieder hinzufügen, oder ? Dann bräuchte ich nur die reinen Zahlenwerte ins Array einlesen.
Wenn ich dann das Ganze in einer Schleife für ca. 20 Diagramme anwende, rechnet sich Excel dann nicht zu Tode ?
Grüße,
Martin

Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 08:44:27
Beverly
Hi Martin,
mit meinem Code werden nur die reinen Zahlenwerte eingelesen, eben als Array, und nicht die Zellbezüge. Schau einfach mal ins Diagramm, wie die Werte dort eingetragen sind.
Was die Performance betrifft, dann würde ich dir empfehlen, für das Einlesen der Werte gleich mehrere Arrays (für jedes Diagramm eines) zu definieren und diese auf einen Ritt in dem Schleifendurchlauf zu füllen. Das hängt natürlich auch davon ab, wie dein Tabellenblatt aufgebaut ist. Wenn für alle Diagramme das selbe (oder ein ähnliches) Schema zutrifft, dürfte das kein Problem sein.
Bis später,
Karin

Anzeige
AW: Per VBA Daten zu einem Diagramm hinzufügen
24.08.2007 13:54:22
Martin
Hab's jetzt eben endlich mal geschafft, es auszuprobieren. Und Heureka, der Wald, den ich nicht sah, war riesig... ;)
Ich hab die ganze Zeit probiert, Zelladressen hinzuzufügen, was für ein Blödsinn - mit den Werten ist es natürlich schneller und sauberer!!!
Karin, ich danke dir vielmals für das Licht weg vom Irrweg... ;))
Viele Grüße,
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten per VBA zu einem Excel-Diagramm hinzufügen


Schritt-für-Schritt-Anleitung

Um Daten in ein Excel-Diagramm hinzuzufügen, kannst Du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es, nur bestimmte Werte aus einer Zeile (z.B. jede dritte Spalte) in ein bereits bestehendes Diagramm einzufügen:

Sub dia()
    Dim chDiagramm As Chart
    Dim inSpalte As Integer
    Dim strWerte As String

    Set chDiagramm = ActiveSheet.ChartObjects(1).Chart
    For inSpalte = 2 To IIf(IsEmpty(Cells(15, Columns.Count)), Cells(15, Columns.Count).End(xlToLeft).Column, Columns.Count) Step 3
        strWerte = strWerte & "," & Cells(15, inSpalte)
    Next inSpalte
    strWerte = Mid(strWerte, 2)
    chDiagramm.SeriesCollection(1).Values = strWerte
End Sub

Dieser Code iteriert durch die Spalten, nimmt nur jeden dritten Wert und fügt ihn in die bestehende Datenreihe des Diagramms ein. Achte darauf, dass Du die richtige Diagramm-Referenz (z.B. ChartObjects(1)) verwendest.


Häufige Fehler und Lösungen

  1. Fehler 1004 beim Ausführen des Codes

    • Die häufigste Ursache für diesen Fehler ist, dass die Zielzelle oder das Diagramm nicht existiert. Überprüfe, ob das angegebene Diagramm vorhanden ist.
  2. Diagramm aktualisiert sich nicht

    • Stelle sicher, dass Du die richtigen Werte an die richtige Datenreihe übergibst. Manchmal kann es sein, dass die Serie nicht existiert oder falsch referenziert wird.
  3. Excel stürzt ab

    • Wenn Du viele Diagramme gleichzeitig aktualisierst, kann das die Performance beeinträchtigen. Verwende Arrays, um die Daten vorab zu sammeln und dann in einem Schritt zu übergeben.

Alternative Methoden

Eine alternative Methode, um Daten in ein Excel-Diagramm hinzuzufügen, besteht darin, eine Hilfstabelle zu verwenden. Du kannst die gewünschten Daten in eine separate Tabelle kopieren und dann das Diagramm basierend auf dieser Tabelle erstellen. Diese Methode ist oft einfacher und kann die Effizienz erhöhen.


Praktische Beispiele

Angenommen, Du hast eine Tabelle mit Verkaufszahlen, und Du möchtest die Verkaufszahlen für jeden dritten Monat in ein Diagramm einfügen. Verwende den obigen VBA-Code und passe die Zeilennummer sowie den Schrittwert an, um die gewünschten Daten zu extrahieren.


Tipps für Profis

  • Verwende Arrays: Um die Performance zu steigern, definiere Arrays für die Werte und fülle diese in einem Rutsch. Das ist oft schneller, als die Werte einzeln zu setzen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im VBA-Code, um mögliche Probleme beim Auslesen der Daten abzufangen.
  • Optimierung: Überlege, ob Du die Daten nicht in einem anderen Format (z.B. als Tabelle) speichern kannst, um die Verarbeitung zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Datenreihen zu einem Diagramm hinzufügen? Du kannst weitere SeriesCollection Objekte in Deinem Code hinzufügen, um mehrere Datenreihen zu integrieren. Hierbei ist es wichtig, die entsprechenden Werte für jede Reihe zu definieren.

2. Ist es besser, Daten direkt in das Diagramm oder in eine Hilfstabelle einzufügen? Das hängt von der Komplexität Deiner Daten ab. Eine Hilfstabelle kann die Übersichtlichkeit erhöhen und die Wartung des Diagramms erleichtern.

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