Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

mit VBA Datenreihen in Diagramm ausblenden
#1
Question 
Hallo liebes Forum,
ich bin neu hier und hoffe ihr könnt mir weiterhelfen.

Ich habe eine Exceltabelle mit >250 Diagrammen (Auswertung von Messdaten, deswegen so viele). 
Nun musste ich den Datenbereich (als formatierte Tabelle) vergrößern und Excel hat mir durch die Erweiterung der Tabelle die neuen Spalten als Datenreihe automatisch in die Diagramme hinzugefügt und eingeblendet (gar nicht cool). 
Alle Diagramme beinhalten die gleichen Datenreihen und wurden über die Filterfunktion je nach betrachteten Parameter unterschiedlich gefiltert.   
Eigentlich müsste ich jetzt für jedes Diagramm einzeln immer wieder die gleichen ~10 Datenreihen ausblenden. Das wird aber ein unglaublicher Aufwand... 

Kann man dies eventuell mit VBA realisieren? Das würde mir eine Menge Zeit ersparen... Ich hab leider keinerlei Erfahrungen im schreiben von eigenen VBA-Makros, kann aber vorhandene Parameter an mein Fall meist ganz gut anpassen. Hab aber in diesem Fall im Internet kein wirklich passendes Skript gefunden. 

Zusatzinformationen:
  • Die Diagramme sind alle im gleichen Tabellenblatt "Diagramme allgm"
  • Die Diagrammnamen wurden nicht angepasst und heißen "Diagramm 1" bis "Diagramm 275"
  • Jedes Diagramm besitzt die gleichen Datenreihen (Anzahl und Name) 
  • Es müssen immer die selben letzten 13 Datenreihen ausgeblendet werden
  • Es handelt sich um xy-Diagramme
Ich hoffe ihr könnt mir weiterhelfen  23
Antworten Top
#2
Hallo,

reicht es die ganze Spalte auszublenden, wie im angehängten Beispiel.

Dies ist sowohl per Hand als auch mit VBA möglich.

Falls meine Interpretation deiner Tabelle nicht stimmen sollte, wäre ein kleine Beispieldatei hilfreich.

mfg


Angehängte Dateien
.xlsx   Diagramm.xlsx (Größe: 16,04 KB / Downloads: 1)
Antworten Top
#3
Dein Beispiel kann ich leider momentan nicht öffnen, da es von der Arbeit geblockt wird. Heute Abend kann ich sie mir zuhause angucken.

Jedoch wäre mir eine Lösung lieb, die sich auf die Diagramme bezieht, da ich die neuen Daten woanders verwenden möchte. 
Ich hatte über ein anderes Makro schon meine MarkerSize, Markerstyle und andere Formatierungssachen  global angepasst und hatte gedacht, dass es möglich ist mit ähnlichen Argumenten die Datenreihen anzusprechen und sie raus zu filtern.

Code:
Option Explicit
Sub test()

'Dieses Skript ändert global alle Formatierungen eines Diagrammes gleichzeitig.

Dim co As ChartObject
Dim s As Series
Set co = Worksheets("Diagramme allgm").ChartObjects("Diagramm 1")
For Each s In co.Chart.SeriesCollection
  s.Border.LineStyle = xlContinuous
  s.Border.Weight = xlThin
  s.MarkerStyle = xlMarkerStyleX
  s.MarkerSize = 3
  s.MarkerBackgroundColor = s.Border.Color
  s.MarkerForegroundColor = s.Border.Color
  s.MarkerStyle = xlMarkerStyleNone
Next s
End Sub

Ich hab für mich selbst jetzt eine Lösung gefunden die nicht perfekt ist, aber vertretbaren Aufwand nur hat.
Über die Funktion Makro aufzeichnen bin ich an meine benötigten Zeilen Code gekommen :D

Code:
ActiveChart.FullSeriesCollection(X).IsFiltered = True
 ist der Ausdruck den ich benötigt habe. X steht für die Nummer der Datenreihe. Jetzt muss ich nur einmal ins Diagramm klicken und den Shortcut des Makros ausführen.

Cool wäre wenn mir jemand noch sagen könnte, wie ich die Schleife aufbauen müsste damit er alle Diagramme von 1 bis 275 durchgeht, ist ja so ähnlich wie nen Zellbezug über indirekt zu erstellen ^^' um meinen eigenen Horizont zu erweitern  21
Code:
ActiveSheet.ChartObjects("Diagramm 1 bis 275").Activate
Antworten Top
#4
Hallöchen,

hier mal ein Ansatz, wir Du alle Charts eines Blattes ansprechen kannst.

Code:
Sub Makro1()
Dim objChObj As ChartObject
For Each objChObj In ActiveSheet.ChartObjects
  With objChObj.Chart.FullSeriesCollection(1)
    .Format.Line.Visible = msoTrue
  End With
Next
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • tizzer93
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste