Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Diagramme mit Makro umformatieren

Betrifft: Diagramme mit Makro umformatieren von: Wolfango
Geschrieben am: 28.08.2014 12:36:54

Hallo Experten,

ich muss mehrere hundert Diagramme umformatieren und brauche ein Makro, welches folgendes macht:

1. Diagrammtitel-Textfarbe:
rot=64, grün=149, blau=218

2. X-Achse:
Linienfarbe=weiß

3. Y-Achse:
Linienfarbe=weiß, Textfarbe=weiß, Textgröße=12

4. Datentabelle:
Textfarbe=weiß, Textgröße=10

5. Alle Datenreihen:
Rahmenfarbe=weiß

7. Hintergrundfarbe (des gesamten Diagramms)=schwarz

Alle anderen (bereits formatierten) Dinge sollen beibehalten werden

Ich vermute das geht irgendwie...

Danke!

Gruß, Wo

  

Betrifft: AW: Diagramme mit Makro umformatieren von: fcs
Geschrieben am: 28.08.2014 16:57:23

Hallo Wo,

nachfolgend entsprechende Makros zum Formatieren von Diagrammen.

Die Hauptprozedur "DiagrammeFormatieren" formatiert in der aktiven Arbeitsmappe alle Diagramme um.
Falls das anders ablaufen soll, dann muss eine modifizierte Hauptprozedur erstellt werden.

Die Makros solltest du in ein allgemeines Modul deiner persönlichen Makroarbeitsmappe einfügen.
Wenn alle Diagramme in einer Arbeitsmappe enthalten sind, dann kannst du die Makros auch in dieser Datei einbauen.

Gruß
Franz

Sub DiagrammeFormatieren()
  Dim objChart As Object
  Dim wks As Worksheet
  
'Alle eingebetteten Diagramme in den Tabellenblättern
  For Each wks In ActiveWorkbook.Worksheets
    For Each objChart In wks.ChartObjects
      Call prcDiagramFormat(objChart:=objChart.Chart)
    Next
  Next wks
  
'Alle separaten Diagrammblätter
  For Each objChart In ActiveWorkbook.Charts
      Call prcDiagramFormat(objChart:=objChart)
  Next
End Sub

Sub prcDiagramFormat(objChart As Chart)
  Dim objReihe As Series
  Dim objAxis As Axis

  With objChart
'1. Diagrammtitel-Textfarbe:
'rot=64, grün=149, blau=218
    If .HasTitle Then
      With .ChartTitle
        .Characters.Font.Color = RGB(64, 149, 218)
      End With
    End If
'2. X-Achse:
'Linienfarbe = weiß
    If .HasAxis(xlCategory) Then
      Set objAxis = .Axes(Type:=xlCategory)
      With objAxis
        .Format.Line.ForeColor.RGB = RGB(25, 255, 255)
      End With
    End If
'3. Y-Achse:
'Linienfarbe=weiß, Textfarbe=weiß, Textgröße=12
    If .HasAxis(xlValue) Then
      Set objAxis = .Axes(Type:=xlValue)
      With objAxis
        .Format.Line.ForeColor.RGB = RGB(25, 255, 255)
        With .TickLabels.Font
          .Color = RGB(255, 255, 255)
          .Size = 12
        End With
      End With
    End If

'4. Datentabelle:
'Textfarbe=weiß, Textgröße=10
    If .HasDataTable Then
      With .DataTable
        .Font.Color = RGB(255, 255, 255)
      End With
    End If
'5. Alle Datenreihen:
'Rahmenfarbe = weiß
    For Each objReihe In .SeriesCollection
      With objReihe
        With .Format.Line
          .ForeColor.RGB = RGB(255, 255, 255)
        End With
      End With
    Next
'7. Hintergrundfarbe (des gesamten Diagramms)=schwarz
    With .ChartArea
      With .Format.Fill
        .ForeColor.RGB = RGB(0, 0, 0)
      End With
    End With
    With .PlotArea
      With .Format.Fill
        .ForeColor.RGB = RGB(0, 0, 0)
      End With
    End With
  End With
End Sub



  

Betrifft: AW: Diagramme mit Makro umformatieren von: Wolfango
Geschrieben am: 29.08.2014 14:22:14

...super! Funktioniert!

Das erleichtert mir wirklich vieles!

Besten Dank und Gruß,

Wo


 

Beiträge aus den Excel-Beispielen zum Thema "Diagramme mit Makro umformatieren"