Dynamisches Diagramm auch auf Spaltenzahl anpassen

Bild

Betrifft: Dynamisches Diagramm auch auf Spaltenzahl anpassen
von: Chaotica
Geschrieben am: 13.11.2003 14:38:18

Hallo zusammen,

mir ist es jetzt mehr oder weniger erfolgreich gelungen mittels VBA eine Tabelle so anzupassen, dass sie mir die Daten dynamisch anpasst. Zumindest was die Zahl der Zeilen angeht. Ein kleiner Fehler steckt noch drin, aber den hoffe ich gleich rauszukriegen.

Allerdings bräuchte nun noch eine Lösung, wie ich auch die Spaltenanzahl dynamisch anpasse und als zusätzliche Herausforderung: ich möchte auch die Benennung der Datenreihen dynamisch aus dem Tabellenblatt übernehmen, damit keine unnötig große Legende entsteht.

Mein bisheriger Code sieht so aus:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngStart As Range
Dim rngZeilen As Range
Dim intEnde As Integer
If Target.Column >= 1 And Target.Column <= 81 And Target.Row >= 5 And Target.Row <= 20 Then
    Set rngZeilen = Range("A5:A20")
    Set rngStart = ActiveCell
    intEnde = Cells(rngZeilen.Rows.Count, rngStart.Column).End(xlUp).Row
-> Da steckt noch ein Fehler, intEnde wird nicht korrekt bestimmt...
    ActiveSheet.ChartObjects("Diagramm 5").Activate
    ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("a5:h" & intEnde)
End If
End Sub


Über jede Hilfe dankbar,
Chaotica
Bild


Betrifft: "Fast" gelöst, nur noch ein Problemchen
von: Chaotica
Geschrieben am: 13.11.2003 16:49:49

Hallo,

ich bin ein Stück weiter gekommen, aber vielleicht kann mir hier doch noch wer helfen...

Bis jetzt sieht der Code so aus:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngStart As Range
Dim intRow As Integer
Dim intCol As Integer
If Target.Column >= 1 And Target.Column <= 81 And Target.Row >= 3 And Target.Row <= 20 Then
    Set rngStart = ActiveCell
    intRow = Range("A5:h5").End(xlDown).Row
    intCol = Range("b3:b20").End(xlToRight).Column
    ActiveSheet.ChartObjects("Diagramm 5").Activate
    ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range(Cells(5, 1), Cells(intRow, intCol))
End If
End Sub


Mein Problem ist jetzt "nur" noch, daß ich die Benennung der Datenreihen aus Zeile 3 generieren und natürlich auch dynamisch anpassen will.

Kann mir dazu noch jemand helfen?

Chaotica


Bild


Betrifft: "Fast" gelöst, nur noch ein Problemchen
von: Chaotica
Geschrieben am: 13.11.2003 16:49:58

Hallo,

ich bin ein Stück weiter gekommen, aber vielleicht kann mir hier doch noch wer helfen...

Bis jetzt sieht der Code so aus:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngStart As Range
Dim intRow As Integer
Dim intCol As Integer
If Target.Column >= 1 And Target.Column <= 81 And Target.Row >= 3 And Target.Row <= 20 Then
    Set rngStart = ActiveCell
    intRow = Range("A5:h5").End(xlDown).Row
    intCol = Range("b3:b20").End(xlToRight).Column
    ActiveSheet.ChartObjects("Diagramm 5").Activate
    ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range(Cells(5, 1), Cells(intRow, intCol))
End If
End Sub


Mein Problem ist jetzt "nur" noch, daß ich die Benennung der Datenreihen aus Zeile 3 generieren und natürlich auch dynamisch anpassen will.

Kann mir dazu noch jemand helfen?

Chaotica


Bild

Beiträge aus den Excel-Beispielen zum Thema " Dynamisches Diagramm auch auf Spaltenzahl anpassen"