ich habe eine Auswertung für eine CSV-Datei mithilfe von yummi gebastelt, jetzt bin ich dabei diese Anzuwenden und dabei fiel mir auf, dass es vlt Klug wäre wenn man dies vlt. etwas automatisiert.
So sieht der Code zum Einlesen der Datei aus. Diese wird von Hand ausgewählt Zurzeit.
Sub CSV_Einlesen()
Dim varFileToOpen As Variant
Sheets.Add after:=Sheets(Sheets.Count)
varFileToOpen = Application.GetOpenFilename("csv-Dateien,*.csv")
If varFileToOpen = False Then Exit Sub
With Workbooks.Open(varFileToOpen, Local:=True)
.Worksheets(1).UsedRange.Copy Destination:=ThisWorkbook.ActiveSheet.Cells(1)
ThisWorkbook.ActiveSheet.Range("W1") = Replace(Right(.FullName, Len(.FullName) - _
InStrRev(.FullName, "\")), ".csv", "")
.Close SaveChanges:=False
End With
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array( _
_
13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), _
_
Array _
(20, 1), Array(21, 1), Array(22, 1)), TrailingMinusNumbers:=True
Columns("A:A").EntireColumn.AutoFit
Range("A1").Select
Columns("S:S").Select
Selection.Copy
Columns("AK:AK").Select
ActiveSheet.Paste
ActiveSheet.Name = ThisWorkbook.ActiveSheet.Range("W1") & " " & Left(ThisWorkbook. _
ActiveSheet.Range("A2"), 11)
Call Alles
End Sub
Mein Ziel wäre es Alle Datein mit dem Namensvarianten:
abc_snapshot_22o.csv
abc_snapshot_46u.csv
abc_snapshot_10o.csv
einzulesen.
abc_snapshot_ ist immer gleich rest variable. Denke sowas wie abc_snapshot_*.csv auf der Art könnte klappen.
Dann ist das Verzeichnis z.B. auf Laufwerk: K:\Messwerte\ kann man da vlt was machen auf der Art file to open For each abc_snapshot_*.csv in Ordner Messwerte ...