Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm enthält eine Reihe(Kurve) zu viel

Forumthread: Diagramm enthält eine Reihe(Kurve) zu viel

Diagramm enthält eine Reihe(Kurve) zu viel
26.02.2014 11:04:31
Olli
Hallo Helfende!
Ich bin leider komplett unerfahren mit vba und habe folgendes Problem:
Ich lese eine CSV-Datei ein, was auch wunderbar funktioniert.
Jetzt möchte ich aus den Daten ein Diegramm erstellen.
Dieses funktioniert soweit auch, allerdings enthält das Diagramm noch eine unerwünschte zweite Kurve...
Außerdem wäre es wünschenswert, wenn die im Diagramm angezeigten Werte sich dynamisch mit der Anzahl an Werten in der Tabelle erweiteren.
Hier mein (aus dem Internet zusammengesuchter) Code:

Sub Datei_Importieren()
'Objekte anlegen
Dim sh As Worksheet
Dim chrt As Chart
Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long
Set sh = ActiveWorkbook.Worksheets("Tabelle1")
Set chrt = sh.Shapes.AddChart.Chart
'Trennzeichen
Const cstrDelim As String = ";"
'Dezimalzeichen anpassen
Application.UseSystemSeparators = False
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ","
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
.InitialFileName = "c:\Messungen\*.csv"  'Pfad anpassen
If .Show = -1 Then
strFileName = .SelectedItems(1)
End If
End With
If strFileName  "" Then
Application.ScreenUpdating = False
Open strFileName For Input As #1
arrDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
For lngR = 1 To UBound(arrDaten)
arrTmp = Split(arrDaten(lngR), cstrDelim)
If UBound(arrTmp) > -1 Then
With ActiveSheet
lngLast = .Cells(Rows.Count, 1).End(xlUp).Row + 1
lngLast = Application.Max(lngLast, 1)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End With
End If
Next lngR
End If
'Zellen formatieren
With Range("A:A")
.NumberFormat = "hh:mm:ss.000"
End With
With Range("B:U")
.NumberFormat = "0.00"
End With
'Spaltenbreite
Columns("A:U").WrapText = True
Columns("A:U").ColumnWidth = 20
Columns("A:U").Rows.AutoFit
With chrt
'Kurventyp
.ChartType = xlXYScatterLines
'Daten
With .SeriesCollection.NewSeries
.Name = "=Tabelle1!$T$1"
.XValues = "=Tabelle1!$A$2:$A$10"
.Values = "=Tabelle1!$T$2:$T$10"
End With
'Anzeigeort
.ChartArea.Height = 200
.ChartArea.Width = 700
'Format
.HasTitle = True
.ChartTitle.Characters.Text = "Stromverbrauch"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Zeit[hh:mm:ss,000]"
.Axes(xlCategory).HasMajorGridlines = True
.Axes(xlCategory).TickLabels.NumberFormat = "hh:mm:ss.000"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Strom [A]"
.Axes(xlValue).HasMajorGridlines = True
.HasLegend = True
End With
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige