Hi,
ich bin ein kompletter Neuling im Erstellen von Excel Makros und hänge gerade an einem Problem fest.
Ich versuche ein Makro zu schreiben, mit dem ich eine CSV-Datei (hat hier die Endung .spec2) öffnen, die Werte nach Excel importieren kann und diese Werte dann in einem Diagramm dargestellt bekomme. Im Excel habe ich dann also 2 Spalten, wovon die 1. Spalte auf der X-Achse, die 2. Spalte auf der Y-Achse dargestellt werden soll.
Das Öffnen und Importieren der Werte funktioniert soweit, nur beim Erstellen des Diagramms gibt es Probleme, da ich jedesmal den Fehler "Typen unverträglich" bekomme.
Ich bin an dieser Stelle so vorgegangen, dass ich mir mit Hilfe des Makro-Recorders VBA-Code erzeugt habe und diesen dann, um ihn dynamisch mit unterschiedlichen Dateien ausführen zu können, um eine Dateinamen-Variable (fileName) ergänzt habe.
Hat jemand eine Idee was ich falsch mache?
schon mal danke im Voraus!
teelow
Hier ist der Code:
Sub CsvOpen()
Dim oeffnen
Dim fileName As String
Application.ScreenUpdating = False
oeffnen = Application.GetOpenFilename(filefilter:="Spec2 Files (*.spec2), *.spec2", MultiSelect:=False)
' Dateinamen ermitteln (ohne Pfad + Dateieindung)
fileName = Mid(oeffnen, InStrRev(oeffnen, "\") + 1, InStrRev(oeffnen, ".") - (InStrRev(oeffnen, "\") + 1))
Workbooks.OpenText oeffnen, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1)), DecimalSeparator:=".", ThousandsSeparator:=",", _
TrailingMinusNumbers:=True
ActiveWorkbook.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Workbooks(Mid(oeffnen, InStrRev(oeffnen, "\") + 1)).Close False
' Diagramm ergänzen:
Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
"Spektrogramm"
ActiveChart.SetSourceData Source:=Sheets(fileName). _
Columns("B:B"), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "='" & fileName & "'!C1"
ActiveChart.Location Where:=xlLocationAsObject, Name:=fileName
End Sub