Microsoft Excel

Herbers Excel/VBA-Archiv

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

Diagramm von Zellen in der letzten Zeile

Betrifft: Diagramm von Zellen in der letzten Zeile von: Felix
Geschrieben am: 17.10.2014 12:15:51

Hallo Excel-Freunde,

ich versuche derzeit per Makro ein Diagramm zu erstellen, welches aus den Werten in Spalte M und N seine Daten nimmt.
So weit so einfach.

ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnStacked
    ActiveChart.SetSourceData Source:=Range("Tabelle1!$M$17:$N$17")

Da die Werte jedoch nicht immer am selben Ort sind, habe ich einen Filter vorangeschoben.

ActiveSheet.Range("$A$1:$Q$40").AutoFilter Field:=1, Criteria1:=Array("gesuchter Text aus  _
Spalte A"), Operator:=xlFilterValues

Nun könnte ich die letzte Zeile ansprechen und würde immer die richtigen Daten bekommen.
Den Inhalt aus Spalte A als Titel zu exportieren funktioniert auch bereits.

    ActiveSheet.Range("$A$1:$Q$40").AutoFilter Field:=1, Criteria1:=Array("gesuchter Text aus  _
Spalte A"), Operator:=xlFilterValues
    Cells(Range("A1").End(xlDown).row, 1).Select
    Selection.Copy

Wenn ich diesen Syntax dann aber für das Diagramm verwenden möchte, kommt der Fehler, dass die _ Range nicht für _Global funktioniert.

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceData Source:=Range ("Cells(13,Range(A1).End(xlDown).row):Cells(14, Range( _
A1).End(xlDown).row)")

Ich hoffe mein Anliegen war verständlich und würde mich freuen, wenn jemand dafür eine Lösung hat.

Mit freundlichen Grüßen

Felix

  

Betrifft: AW: Diagramm von Zellen in der letzten Zeile von: Klaus M.vdT.
Geschrieben am: 17.10.2014 13:04:24

Hallo Felix,
keine Ahnung ob dass den Fehler schon behebt, aber du benutzt RANGE falsch.
So ist es Richtig: Range("A1:B10") mit "
Oder so: Range(Cells(1, 1), Cells(10, 2)) ohne "
Du hast beides falsch gemacht!
ausserdem gilt: Cells(ZEILE,SPALTE) im Gegensatz zu Range("SPALTE-ZEILE"). Ich gehe mal ganz stark davon aus, dass du diese vertauscht hast (denn die letzte Zeile aus xldown als Spalte zu nehmen macht irgenwie wenig Sinn).
Deine Zeile korrigiert:
ActiveChart.SetSourceData Source:=Range(Cells(Range("A1").End(xlDown).Row, 13), Cells(Range("A1").End(xlDown).Row), 14)

Nebenbei, end(xldown).row funktioniert nicht richtig gut mit Autofilter. Teste mal ein paar Grenzfälle, ob du dir damit Probleme einhandelst oder nicht.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Diagramm von Zellen in der letzten Zeile von: Felix
Geschrieben am: 17.10.2014 13:47:19

Hallo Klaus,

vielen Dank für die Hinweise.
Ich werde das mal testen, ob ich mit end.row auf Schwierigkeiten stoße.

Wenn ich deinen Lösungsvorschlag ausprobiere, kommt die Meldung "Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft"

VG

Felix


  

Betrifft: AW: Diagramm von Zellen in der letzten Zeile von: Klaus M.vdT.
Geschrieben am: 18.10.2014 13:27:33

Felix,
lädst du die Datei mal hoch, bitte? Sonst bleibt das Rätselraten.
Grüße,
Klaus M.vdT.


  

Betrifft: AW: Diagramm von Zellen in der letzten Zeile von: Beverly
Geschrieben am: 19.10.2014 08:24:59

Hi Felix,

so sollte es eigentlich funktionieren:

    Dim lngLetzte As Long
    Range("A1:Q40").AutoFilter field:=1, Criteria1:=Array("a", "b", "c"), Operator:= _
xlFilterValues
    lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
    With ActiveSheet.Shapes.AddChart.Chart
        .ChartType = xlColumnStacked
        .SetSourceData Source:=Range(Cells(lngLetzte, 13), Cells(lngLetzte, 14))
    End With

GrußformelBeverly's Excel - Inn


 

Beiträge aus den Excel-Beispielen zum Thema "Diagramm von Zellen in der letzten Zeile"