Thema Datum  Von Nutzer Rating
Antwort
Rot Diagonale VBA
25.09.2015 19:36:46 Raphi
Solved
26.09.2015 05:55:07 Gast2529
NotSolved

Ansicht des Beitrags:
Von:
Raphi
Datum:
25.09.2015 19:36:46
Views:
1149
Rating: Antwort:
 Nein
Thema:
Diagonale VBA

Hi Excelianer,

ich würde gerne in meinem Diagramm eine Diagonale von KW 0  bis KW 52 über Makro ziehen.

Ich habe mir eine zusätzliche Datenreihe mit den Werten von 0-52 in der Zeile 11 (D-BE) erstellt.

Leider konnte ich dies durch Add.SerieCollection noch nicht in das Makro einarbeiten.

Aus einem anderen Forum bekam ich folgendne Tipp:

definiere einen Namen (z.B. Diagonale) und gib unter "Bezieht sich auf" diese Formel ein: =ZEILE($1:$53)-1
Erstelle dann eine neue Datenreihe und weise ihr als Werteberich den Namen zu.

Dies konnte ich leider auch nicht umsetzen.....

 

Könnte mir bitte jemand helfen ?

 

Viele Grüße,

Raphi

Sub Create_MSTA_KW()

Dim rngBereich As Range
  Dim lngLetzte As Long
  Dim lngReihe As Long
  Dim cht As Chart
  
  With Worksheets("P3_MSTA_Daten_KW")
    ' letzte belegte Zeile in Spalte B
    lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), _
      .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count)
    Set rngBereich = .Range(.Cells(14, 2), .Cells(lngLetzte, 55))
  End With

  With Worksheets("P3_MSTA_Diagramm_KW")
    If .ChartObjects.Count > 0 Then
      Set cht = .ChartObjects("MSTA_KW").Chart 'bereits vorhanden?
    Else
      'nein, erstellen
      Set cht = .Shapes.AddChart.Chart
    End If
    
    With cht
      .ChartType = xlLineMarkers
      .SetSourceData Source:=rngBereich, PlotBy:=xlRows
      .Parent.Name = "MSTA_KW"
      .Legend.IncludeInLayout = True
      .SetElement (msoElementPrimaryValueGridLinesNone)
      .SeriesCollection(1).XValues = Worksheets("P3_MSTA_Daten_KW").Range("C14:BC14")
      
   
      
      With .Axes(xlValue)
        .MaximumScale = 52
        .MinimumScale = 0
        .MajorUnit = 1
        .TickLabels.NumberFormat = "KW ##"
        .TickLabels.NumberFormat = "KW ##"
      End With
      With .Axes(xlCategory)
        .TickLabels.NumberFormat = "KW ##"
        .TickLabels.NumberFormat = "KW ##"
        .AxisBetweenCategories = False
      End With
      For lngReihe = 1 To .SeriesCollection.Count
        With .SeriesCollection(lngReihe)
          .MarkerStyle = 2
          .MarkerSize = 8
        End With
      Next lngReihe
      With .Parent
        .Top = .Parent.Range("B5").Top
        .Left = .Parent.Range("B5").Left
        .Width = 1200
        .Height = 800
      End With
    End With
  End With
  Set rngBereich = Nothing
  Set cht = Nothing

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Diagonale VBA
25.09.2015 19:36:46 Raphi
Solved
26.09.2015 05:55:07 Gast2529
NotSolved