Clever-Excel-Forum

Normale Version: mit VBA Datenreihen in Diagramm ausblenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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
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