Office: per VBA Liniendiagramm Farben zuordnen

Helfe beim Thema per VBA Liniendiagramm Farben zuordnen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte das in meinem Liniendiagramm abhängig vom Name der Linie eine entsprechende Farbe zugeordnet wird. Die Datei ist wie folgt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von volleysash, 8. August 2016.

  1. per VBA Liniendiagramm Farben zuordnen


    Hallo,

    ich möchte das in meinem Liniendiagramm abhängig vom Name der Linie eine entsprechende Farbe zugeordnet wird.

    Die Datei ist wie folgt aufgebaut:

    Tabellenblatt "Rohdaten":

    Hier habe ich insgesamt 7 (Hamburg, Dresden, München, Düsseldorf, Berlin, Leipzig, Bonn) Datenreihen mit Werten über einen Verlauf von 20 Jahren

    Tabellenblatt "Auswertung":

    In diesem Tabellenblatt habe ich ein Liniendiagramm (der Datenbereich liegt im Tabellenblatt "Auswertung-Daten") angelegt. Ich möchte allerdings nicht, dass alle 7 Datenreihen dargestellt werden, sondern maximal 4. Diese 4 wähle ich über vier Dropdown-Menüs aus (Zelle D5, E5, F5, G5).

    Tabellenblatt "Auswertung-Daten":

    Hier sucht sich Excel über einen direkten Bezug die 4 ausgewählten Datenreihen aus den Dropdown Zellen und anschließend über einen SVERWEIS die entsprechen Daten aus dem Tabellenblatt "Rohdaten" für den Verlauf von 20 Jahren.

    Ich habe bisher kaum Erfahrung mit VBA. Mein bisheriger Code sieht so aus:
    Code:
    Gut wäre, wenn der Name der Stadt im Code nicht fest, sondern dynamisch über einen Zellbezug gepfürt wird (also anstatt "Bonn" Zelle "L5). Danke für eure Hilfe. Ich habe mal eine Demodatei angehängt.

    :)
     
    volleysash, 8. August 2016
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    vielleicht so:

    Code:
    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 10. August 2016
    #2
  3. Hey,
    danke für deine Hilfe. Ich bin VBA-Neuling und kann nur bestimmte Schritte deines Codes nachvollziehen. Kannst du mir erklären, was der Code innerhalb der Schleife genau macht? Dann kann ich den Code entsprechend meinen Originaldaten entsprechend anpassen.

    Nochmals vielen Dank!
     
    volleysash, 10. August 2016
    #3
  4. Beverly
    Beverly Erfahrener User

    per VBA Liniendiagramm Farben zuordnen

    Hi,

    hier mit Kommentaren - ich hoffe, sie sind ausreichend (falls nicht, einfach nachfragen):

    Code:
    Allgemeiner Hinweis: das Diagramm wird deshalb auf eine Variable geschrieben, um nicht jedesmal Worksheets("Auswertung").CharotObjects(4).Chart schreiben zu müssen, was natürlich auch möglich wäre, aber so ist der Code übersichtlicher.


    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 10. August 2016
    #4
  5. Oder per UDF...
     
  6. Danke xlph, auch hier die Bitte, kannst du kurz erklären, was der Code wo macht? Ich muss das Ganze wie gesagt noch anpassen...
    Nochmal Danke!
     
    volleysash, 10. August 2016
    #6
  7. Hey Beverly,

    danke für deine Hilfe und Erklärung. In der Testdatei funktioniert es prima. Wenn ich den Code auf meine Originaldatei anwende bringt er mir in der Codezeile
    Code:
    Laufzeitfehler '9':
    Index außerhalb des gültigen Bereichs

    Kann es sein, dass es daran liegt, dass meine Reihennamen auch Leerzeichen und/oder Zahlen/Zeichen haben?

    Wenn ich das Ganze dann mit mehreren Diagrammen vorhabe kopier ich den Code einfach nach "End With" nochmal ein und setze ChrDia nur auf ein anderes Diagramm oder?
     
    volleysash, 10. August 2016
    #7
  8. Beverly
    Beverly Erfahrener User

    per VBA Liniendiagramm Farben zuordnen

    Hi,

    wie sieht denn deine Original-Datenreihenformel aus? Besser noch - lade ein Beispiel mit einem Orignialdiagramm und der originalen Situtation für die Daten des Diagramms hoch.

    Der Code muss nicht mehrfach kopiert werden, er läuft in einer Schleife über alle Diagramme des Tabellenblattes Auswertung.


    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 11. August 2016
    #8
  9. Hey,

    ich kann/darf die Originaldaten leider nicht hochladen.

    Meinst du mit Datenreihenformel die Formel die beschreibt, wo sich das Diagramm die Daten holt?
    Kann es auch daran liegen, dass ich noch weitere Diagramme (insgesamt ca. 20, nicht nur Linie sondern auch Balken und Fläche) im Tabellenblatt habe in denen die Datenreihen nicht die Namen der Städte haben?

    Der Code soll auch nicht in allen die Farbe ändern, sondern nur in den Liniendiagrammen.

    Entschuldige, dass ich erst jetzt damit rausrücke. Ich dachte wenn ich den Code für ein Diagramm habe, schaffe ich es ihn auf die anderen zu übertragen.
     
    volleysash, 11. August 2016
    #9
  10. Beverly
    Beverly Erfahrener User
    Hi,

    ja, ich meine das, was in der Bearbeitungsleiste steht, wenn man eine Datenreihe markiert. Wenn dort keine Zelle angegeben ist, aus der der Name bezogen wird, läuft das natürlich auf einen Fehler. Wenn eine Beispielmappe hochgeladen wird, dann muss man davon ausgehen, dass die Bedingungen in der Originalmappe genau denen in der hochgeladenen Mappe entsprechen. VBA ist eine Sprache, die ausgesprochen von den konkreten Bedingungen abhängig ist und wenn diese im Original anders sind, dann muss man sich nicht wundern, wenn ein Code nicht läuft.

    Sorry, der Code läuft nicht in einer Schleife über alle Diagramme - habe das mit einen anderen Beitrag verwechselt - er bezieht sich nur auf das 4. Diagramm. Wenn du also andere Linien-Diagramme formatieren willst, dann ändere jeweils die Nummer in Klammern an dieser Stelle im Code für jedes Diagramm einzeln:

    Code:

    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 12. August 2016
    #10
  11. Hey,

    ich kann verstehen was du geschrieben hast. Die Bedingungen in meinem hochgeladenen Beispiel sind mit meinen Originaldaten, bis auf die Reihennamen, identisch. Die Reihennamen bestehen teilweise nicht nur aus Buchstaben sondern auch teilweise aus Leerzeichen, Bindestrichen und Zahlen. Ich dachte immer das "String" alle Zeichen akzeptiert.
    In der Datenreihe des Diagramm ist eine Zelle angegeben (sieht so aus: DATENREIHE('Auswertung-Daten'!$B$21;'Auswertung-Daten'!$G$18:$AA$18;'Auswertung-Daten'!$G$21:$AA$21;3)

    Die Erweiterung auf die anderen Diagramme habe ich mir genauso vorgestellt.
     
    volleysash, 12. August 2016
    #11
  12. Beverly
    Beverly Erfahrener User
    Hi,

    ich kann eigentlich nicht erkennen, weshalb es mit dieser Datenreihenformel ein Problem geben sollte.

    Tritt das Problem nur bei 1 bestimmten Diagramm auf oder bei allen? Tritt es nur bei 1 Datenreihe auf oder bei allen?
    Erstelle doch mal eine Kopie deiner Originalmappe mit genau diesem Diagramm und seiner Datenquelle und lade sie hoch.


    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 12. August 2016
    #12
  13. per VBA Liniendiagramm Farben zuordnen

    Hey Beverly,

    ich musste mich diese Woche um andere Projekte kümmern, deswegen erst jetzt meine Rückmeldung. Ich habe den "Fehler" gefunden.
    Der Code setzte chrDia auf:
    Sheets("Auswertung").ChartObjects(4).Chart
    Ich habe ihn geändert in:
    Sheets("Auswertung").ChartObjects("Diagramm 4").Chart und es funktioniert soweit erstmal ohne Fehlermeldung.
    Nur färbt er jetzt alle Linien schwarz, was in meinen Augen daran liegt, dass er
    hier:
    Set rngZelle = .Columns("K").Find(Worksheets("Auswertung-Daten").Range(strNameZelle).Value, lookat:=xlWhole)
    rngZelle auf "nothing" setzt.
    Was vermutlich wiederum daran liegt, dass strNameZelle nicht der Name der Reihe sondern der Zellbezug in " " ist.
    Oder liege ich da falsch?
    Ich hoffe das war jetzt nicht ganz wirr...
     
    volleysash, 18. August 2016
    #13
  14. Beverly
    Beverly Erfahrener User
    Hi,

    dann schau doch mal im Einzelschrittmodus, was auf der Variablen strNameZelle steht. Der Begriff wird schon gefunden, denn andernfalls würde die Farbe der Linien überhaupt nicht geändert. Ich denke mal es liegt daran, dass deine Farbnummern für RGB in anderen Spalten stehen als L, M und N. Aber das kann ich nicht entscheiden, da ich die Originalmappe bzw. wenigstens den Origignalaufbau kenne.

    In deinem Code steht Worksheets("Auswertung").ChartObjects(4) - also musste davon ausgegangen werden, dass dies korrekt ist.


    per VBA Liniendiagramm Farben zuordnen grusz.gif
     
    Beverly, 19. August 2016
    #14
  15. Hey,

    auf strNameZelle steht "$B$19" (der Zellbezug ist korrekt)
    und rngZelle steht auf "nothing".
    Die Farbnummern stehen in den drei Spalten rechts vom Datenreihennamen
     
    volleysash, 24. August 2016
    #15
Thema:

per VBA Liniendiagramm Farben zuordnen

Die Seite wird geladen...
  1. per VBA Liniendiagramm Farben zuordnen - Similar Threads - VBA Liniendiagramm Farben

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Liniendiagramm, Farbe ändern per VBA

    in Microsoft Access Hilfe
    Liniendiagramm, Farbe ändern per VBA: Hallo, kann mir jemand erklären, wie ich per VBA die Linienfarbe einer Datenreihe in einem Liniendiagramm ändern kann. Meine Farbvorgaben werden leider von Access 03 vehement ignoriert. Per...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden