Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenreihen in Diagramm einfügen

Datenreihen in Diagramm einfügen
27.02.2016 19:40:53
Bastian
Hallo Forum Freunde.
Ich hoffe Ihr hattet bis jetzt ein schönes Wochenende =)
Ich bin gerade dabei mir Daten x/y aus einer Tabelle direkt in das Diagramm einlesen zulassen.
mit diesem CODE
Sub Diagramm()
ActiveSheet.ChartObjects("Diagramm 1").Activate
Dim lngZeile As Long
For lngZeile = 3 To IIf(IsEmpty(Cells(Rows.Count, 2)), _
Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count) '

Nur leider habe ich in meiner Tabelle nur Formeln darum Funktioniert das bei diesem Code nicht mit "IsEmpty" und bei den x/y Werten sollen auch nur die Zellen eingelesen werten die mit Zahlen sind. Und somit passt dann auch nicht das Diagramm.
Kann mir jemand einen Tip geben ?
Hier ein Muster von mir
https://www.herber.de/bbs/user/103928.xlsm
Gruß Basti
Schönes Wochenende noch ^^

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenreihen in Diagramm einfügen
27.02.2016 19:53:25
Beverly
Hi Basti,
wenn ich das richtig verstanden habe, sollen nur die Datenreihen im Diagramm angezeigt werden, die in Spalte A ein "x" haben?
Sub Diagramm()
Dim lngZeile As Long
With ActiveSheet.ChartObjects(1).Chart '


AW: Datenreihen in Diagramm einfügen
27.02.2016 20:16:02
Bastian
Hallo Katrin
Danke für deine Info nur wolle ich das nicht das X sonder z,B wenn die 1,2 ,3 erscheint das die Datenreihe kopiert wird so wie du das hatte ich auch schon .
Sub Diagramm()
ActiveSheet.ChartObjects("Diagramm 1").Activate
Dim lngZeile As Long
For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) '
Nur ist dann leider immer noch das Diagramm Falsch weil er die Leeren Zellen " Wo nix drinne steht außer die Formel auch mit ein ließt"
Wenn du mal die Leeren zellen löscht und dann noch mal alles einließt siehst du was dei kurve genau andersherum läuft.
Hast du noch eine Idee?
Ich hab im Internet gelesen das
diese Funktion
Dim leer as Boolean
If Range("A1").Value = "" Then
leer = True
End If
die Wirklich Leere zelle wieder gibt aber ich habe keine Ahnung wie ich das da einfügen muss =D
Gruß
Basti

Anzeige
AW: Datenreihen in Diagramm einfügen
27.02.2016 21:06:10
Beverly
Hi Basti,
die Zahlen 1, 2, 3 usw. in Spalte B erscheinen wann? Wenn in A in der betreffenden Zeile ein "x" steht - und genau das wird in meinem Code berücksichtigt.


AW: Datenreihen in Diagramm einfügen
28.02.2016 11:33:01
Bastian
Hallo Karin ,
ja da hast du recht ist ja auch so weit ganz gut . Eine Idee wie er bei einlesen der Daten in die Datenreihe nur die Felder einließt welche mit Zahlen gefüllt sind hast du nicht ?
Vielen Dank für deine Mühe
Gruß BAsti

AW: Datenreihen in Diagramm einfügen
28.02.2016 12:43:23
fcs
Hallo Basti,
die Prüfung musst du auf Zahl und ist nicht leer machen.
LG
Franz
Sub Diagramm()
ActiveSheet.ChartObjects("Diagramm 1").Activate
Dim lngZeile As Long
For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 2)), _
Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count) '

Anzeige
AW: Datenreihen in Diagramm einfügen
28.02.2016 14:16:28
Bastian
Danke Franz,
Das löst ja schon mal mein erstes Problem =)
Nun bräuchte ich das gleich noch bei .values und .xvalues damit er die Formeln nicht im Diagramm einliest.
Hier hab ich noch mal Händisch gemacht Soll und Ist vergleich.
https://www.herber.de/bbs/user/103941.xlsm
Danke noch mal euch beiden =)

AW: Datenreihen in Diagramm einfügen
28.02.2016 15:57:36
Beverly
Hi Basti,
mal eine Frage: was macht dieser Code im Ergebnis anders als der, der in Spalte A prüft, ob ein "x" steht? Wie ich schon geschrieben hatte: das "x" in Spalte A bedingt doch erst, dass die Zahl in Spalte B angezeigt wird - da spielt es doch keine Rolle, ob geprüft wird, ob Spalte B leer ist oder ob in A ein "x" steht und das Ergebnis ist mit beiden Codes dasselbe. Ich muss schon sagen: irgendwie ist deine Logik sehr seltsam... ;-)
Außerdem läuft der Code immer bis zur letzten Formelzelle in Spalte B, auch wenn nur in der ersten Zeile etwas steht, wogegen er in Spalte A nur bis zur tatsächlich letzten belegten Zeile läuft - also nur von 3 bis 3, wenn nur die erste einen Eintrag hat. Aber - weshalb einfach, wenn es auch umständlich geht. :D


Anzeige
AW: Datenreihen in Diagramm einfügen
28.02.2016 14:34:24
Beverly
Hi Basti,
du meinst, wenn nur 3 fortlaufende Spalten Werte haben dann sollen auch nur 3 Datenpunkte angezeigt werden?
Sub Diagramm()
Dim lngZeile As Long
Dim intSpalte As Integer
With ActiveSheet.ChartObjects(1).Chart
.SetSourceData Source:=Range("A1")
.SeriesCollection(1).Delete
For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
If Cells(lngZeile, 1) = "x" Then
intSpalte = Application.Count(Range(Cells(lngZeile, 4), _
Cells(lngZeile, 7))) - 1
If intSpalte > -1 Then
With .SeriesCollection.NewSeries
.Values = Range(Cells(lngZeile, 9), _
Cells(lngZeile, 9 + intSpalte))
.XValues = Range(Cells(lngZeile, 4), _
Cells(lngZeile, 4 + intSpalte))
.Name = Cells(lngZeile, 2)
End With
End If
End If
Next lngZeile
End With
End Sub

Bedingung ist aber, dass zwischen drin keine leeren Spalten vorkommen.


Anzeige
AW: Datenreihen in Diagramm einfügen
28.02.2016 18:02:55
Bastian
Hallo Karin ,
Genau so funktioniert super =)
Hab jetzt so ein Mix gemacht
Sub Diagramm()
Dim lngZeile As Long
Dim intSpalte As Integer
With ActiveSheet.ChartObjects(1).Chart
.SetSourceData Source:=Range("A1")
.SeriesCollection(1).Delete
For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 2)), _
Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
If IsNumeric(Cells(lngZeile, 2)) And Not IsEmpty(Cells(lngZeile, 2)) Then
intSpalte = Application.Count(Range(Cells(lngZeile, 4), _
Cells(lngZeile, 8))) - 1
If intSpalte > -1 Then
With .SeriesCollection.NewSeries
.Values = Range(Cells(lngZeile, 9), Cells(lngZeile, 9 + intSpalte))
.XValues = Range(Cells(lngZeile, 4), Cells(lngZeile, 4 + intSpalte))
.Name = Cells(lngZeile, 2)
End With
End If
End If
Next lngZeile
End With
End Sub

Ich wünsche dir noch einen schönen Sonntag und nochmals Danke für die Hilfe =)
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige