Microsoft Excel

Herbers Excel/VBA-Archiv

Beschriftungsgröße Diagramme gleichzeitig ändern


Betrifft: Beschriftungsgröße Diagramme gleichzeitig ändern
von: Frank
Geschrieben am: 15.04.2019 12:03:04

Hallo zusammen,

ich habe mehrere Excel-Tabellen in der sich jeweils in einer Mappe mehrere Diagramme befinden.

Ich möchte gerne die Beschriftungsgröße der Legenden, der Achsen sowie angezeigten Daten gleichzetig ändern, anstatt jedes Diagramm mühselig einzeln, manuell abzuändern.

Gibt es hier evtl. einen Trick um Zeit und Aufwand zu sparen?

LG
Frank

  

Betrifft: AW: Beschriftungsgröße Diagramme gleichzeitig ändern
von: Rainer
Geschrieben am: 15.04.2019 13:18:33

Hallo Frank,

ja, gibt es. Der Geheimtipp heißt VBA.

Es ist allerdings etwas schwer zu sagen, was nun genau angepasst werden muss, da du nicht erwähnst welche Diagrammtypen benutzt werden. Da muss man womöglich mit einer weitreichenden Fehlerbehandlung rechnen, wenn es verschiedene Typen sind. Hast du evtl. eine Beispieldatei?

Sub LoopThroughCharts()
'PURPOSE: Loop through every graph in the active workbook
'SOURCE: www.TheSpreadsheetGuru.com/The-Code-Vault

Dim sht As Worksheet
Dim CurrentSheet As Worksheet
Dim cht As ChartObject

Application.ScreenUpdating = False
Application.EnableEvents = False

Set CurrentSheet = ActiveSheet

For Each sht In ActiveWorkbook.Worksheets
  For Each cht In sht.ChartObjects
    cht.Activate
    
    'Do something with the chart...
  
  Next cht
Next sht

CurrentSheet.Activate
Application.EnableEvents = True

End Sub



  

Betrifft: AW: Beschriftungsgröße Diagramme gleichzeitig ändern
von: Frank
Geschrieben am: 15.04.2019 15:43:16

Danke schon mal für die Rückmeldung, Rainer.
Eine Beispiel-Datei habe ich gerade nicht parat, kann ich aber nachliefern.

Es handelt sich um ganz einfache Balkendiagramme, die alle einheitlich aufgebaut sind:

Legende, Beschriftung der X und Y-Achse, manchmal ist auch eine Sekundärachse vorhanden. Die Datenbeschriftung der Balken ist eingeblendet.


  

Betrifft: AW: Beschriftungsgröße Diagramme gleichzeitig ändern
von: Rainer
Geschrieben am: 15.04.2019 16:32:01

Es geht wohl doch einfacher...

Man muss nicht alle Elemente (Titel, Legenden, Labels) einzeln ändern.

Probier mal so:

Sub LoopThroughCharts()
'PURPOSE: Loop through every graph in the active workbook
'SOURCE: www.TheSpreadsheetGuru.com/The-Code-Vault

Dim sht As Worksheet
Dim CurrentSheet As Worksheet
Dim cht As ChartObject

Application.ScreenUpdating = False
Application.EnableEvents = False

Set CurrentSheet = ActiveSheet

For Each sht In ActiveWorkbook.Worksheets
  For Each cht In sht.ChartObjects
    cht.Activate
    
    'Do something with the chart...
     
 With cht.Chart.ChartArea.Format.TextFrame2.TextRange.Font
    .Name = "Elephant"
    .Size = 24
End With
  
  
  Next cht
Next sht

CurrentSheet.Activate
Application.EnableEvents = True

End Sub
Es scheint aber nicht bei allen Diagrammtypen zu klappen. Manchmal gibt es Fehler aus.