leere Datenreihen
21.06.2017 15:22:04
Moni
Ich sollte ein dynamisches Diagramm programmieren, bis zur letzten ausgefüllten Spalte und Zeile, da sich diese je nach Messeinstellungen verändern. So wei so gut. ABER komischerweise werden die ganze Zeit leere Datenreihen mit in das Diagramm gezogen und ich verstehe nicht wieso.
Kann es sein dass ich beim einfügen der Daten in Excel schon einen Fehler mache? Also ich muss die Messdaten über den Textkonvertierungs-Assistenten konvertieren und einfügen....
Ich kann mir nicht vorstellen, dass es am VBA code liegt (sorry mein Code ist total auskommentiert):
------------------------------------------------------------------
Sub DynamischesDiagramm()
'Beinhaltet den Code, welcher die Erweiterung des Diagramms
'um eine hinzugefügte Spalte zulässt.
Dim lastRow As Long, lastColumn As Long
Dim i As Integer, n As Integer
'Wählt Tabelle1 aus
Sheets("Tabelle1").Select
'Speichert in die Long-Variable lastRow die letzte ausgefüllt Zeile
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Speichert in die Long-Variable lastColumn die letzte ausgefüllte Spalte
lastColumn = ActiveSheet.Cells(lastRow, Columns.Count).End(xlToLeft).Column
'Fügt ein Diagramm hinzu
Charts.Add
'Wählt im aktiven, vorher gewählten Diagramm den Diagrammtyp
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
'With ersetzt dass man vor ActiveCharts immer Sheets("Tabelle1"). schreiben muss
With Sheets("Tabelle1")
'Zählt von i = der letzten Spalte bis zur 2. in Schritten von 2 nach links
For i = 2 To lastColumn Step 2
'Zähler
n = n + 1
'Fügt eine neue Datenreihe hinzu...
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(n).Name = n
'...mit diesen X-Werten...
ActiveChart.SeriesCollection(n).XValues = Range(.Cells(7, 1), .Cells(lastRow, 1))
'...und diesen Y-Werten.
ActiveChart.SeriesCollection(n).Values = Range(.Cells(7, i), .Cells(lastRow, i))
Next i
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
Selection.Caption = "Potential in V vs."
ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
Selection.Caption = "Current in µA"
End With
End Sub
-----------------------------------------------------------------------------------Vielen Dank schonmal für eure liebe Hilfe!
Moni