ich habe vor einigen Stunden angefangen mich mit VBA zu beschäftigen, weil ich (natürlich) eine größere Anzahl von Daten auszuwerten habe.
Ich habe unten mal den QCode eingefügt.
Im ersten Teil werden csv-Dateien in mein ExelSheet geschrieben. Klappt auch alles ganz super!
..und dann wollte ich noch schnell zu jedem Datenblock ein Diagramm machen. Dabei Soll die 3. Spalte (des jeweiligen Blocks) als x-Achse (Werte) und die 5. als die dazugehörigen Werte dargestellt werden. Leider klappt das nicht!
Habs auch schon mit dem Makrorekorder versucht, doch es gibt immerwieder einen Fehler (Fehler: 1004) in der Zeile:
"'ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("Cells(8, k + 2)":"Cells(Zeile,k+2)"; "Cells(8, k + 4)":"Cells(Zeile,k+4)"), _"
auch wenn ich sie mit dem Rekorder aufnehme und sie ganz unkryptisch als:"ActiveChart.SetSourceData Source:=Range("'Tabelle1'!$C$7:$C$425;'Tabelle1'!$E$7:$E$425")"
geschrieben wird. Kann mir jemand sagen, was hier falsch ist? Und dann vielleicht noch, wie ich zu jedem durchlauf der Schleife ein weiteres Diagramm bekomme?
Ich bin für jede Hilfe dankbar!
Gruß
Kapitän
Dim Str_String As String
k = 1
pfad_data = Dir("C:\Users\test*.csv")
Do While pfad_data ""
'Datei auslesen
Set FSO = CreateObject("Scripting.FilesystemObject")
Set Datei = FSO.Opentextfile("C:\Users\" & pfad_data) 'Anpassen
Str_String = Datei.readall
Datei.Close
intFile = FreeFile
Arr = Split(Str_String, vbCrLf) 'Nach Datensätzen splitten
ReDim Dat_Ausgabe(UBound(Arr), 5)
For L = 0 To UBound(Arr)
Tmp = Split(Arr(L), ",") 'Datensatz nach Werten splittenn
For i = 0 To UBound(Tmp)
Tmp(i) = Replace(Tmp(i), """", "")
Dat_Ausgabe(L, i) = Tmp(i) 'Werte in Dat_Ausgabe
Next
Next
'Ausgeben. Anpassen.
Sheets("Tabelle1").Cells(3, k).Resize(UBound(Dat_Ausgabe) + 1, UBound(Dat_Ausgabe, 2)) = _
_
Dat_Ausgabe
'Diagramm
'Zeile = ActiveSheet.Cells(Rows.Count, k).End(xlUp).Row 'letzte Zeile
'Charts.Add
'ActiveChart.ChartType = xlXYScatter
'ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("Cells(8, k + 2)":"Cells( _
Zeile,k+2)"; "Cells(8, k + 4)":"Cells(Zeile,k+4)"), _
'ActiveChart.SeriesCollection(1).Delete
'ActiveChart.Location Where:=xlLocationAsObject, Name:="Cells(4, k)"
k = k + 6
pfad_data = Dir
Loop
End Sub