Habe ein Makro gebastelt, um 365csv Dateien mit Zurodnung in ein Datenblatt zu lesen.
Allerdings verzweifle ich bei der Vorgabe "Dezimaltrennzeichen" auf Punkt zu setzen
Hier richtig bei manuellem Import
CSV-Export |
Version: 1.01 |
Separator: Semicolon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
SENS0802 |
|
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
39082 |
TimeStamp |
ExlSolIrr |
IntSolIrr |
SMA-h-On |
TmpAmb C |
TmpAmb F |
TmpAmb K |
TmpMdul C |
TmpMdul F |
TmpMdul K |
WindVel km/h |
WindVel m/s |
WindVel mph |
hh:mm |
W/m^2 |
W/m^2 |
h |
?C |
?F |
K |
?C |
?F |
K |
km/h |
m/s |
mph |
00:00 |
0 |
0 |
285,11 |
-273,1 |
-459,6 |
0 |
-0,18 |
31,52 |
272,9 |
0 |
0 |
0 |
00:15 |
0 |
0,03 |
285,36 |
-273,1 |
-459,6 |
0 |
-0,1 |
31,67 |
273 |
0 |
0 |
0 |
Hier falsch nach meinem Makro Spalte 3 und Spalte 9
hh:mm |
W/m^2 |
W/m^2 |
h |
°C |
°F |
K |
°C |
°F |
K |
km/h |
m/s |
mph |
2017-02-01.csv |
1 |
00:00 |
0 |
0.14 |
261.3 |
-273.1 |
-459.6 |
0 |
0 |
31. Jul |
273.1 |
0 |
0 |
0 |
2017-02-01.csv |
2 |
00:15 |
0 |
0 |
261.55 |
-273.1 |
-459.6 |
0 |
0 |
31.9 |
273.1 |
0 |
0 |
0 |
2017-02-01.csv |
3 |
00:30 |
0 |
0.06 |
261.8 |
-273.1 |
-459.6 |
0 |
0 |
31.9 |
273.1 |
0 |
0 |
0 |
2017-02-01.csv |
4 |
00:45 |
0 |
Mrz 22 |
262.05 |
-273.1 |
-459.6 |
0 |
0 |
31.81 |
273.03 |
0 |
0 |
0 |
2017-02-01.csv |
5 |
01:00 |
0 |
09. Sep |
262.29 |
-273.1 |
-459.6 |
0 |
-0.02 |
30. Jun |
273 |
0 |
0 |
0 |
2017-02-01.csv |
6 |
01:15 |
0 |
Nov 23 |
262.54 |
-273.1 |
-459.6 |
0 |
-0.07 |
29. Sep |
273 |
0 |
0 |
0 |
2017-02-01.csv |
7 |
hier mein Makro
Sub CSV_Importieren()
Dim wksZiel As Worksheet, lngZeile_Z As Long
Dim wkbCSV As Workbook
Dim strPfad As String, strDatei As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Ordner mit CSV-Dateien auswählen"
.InitialFileName = "Q:\2_2_Projektunterlagen\Carolinensiel\3_Monitoring_SDI\3_Wirkleistungsbegrenzung\Neuer Ordner"
If .Show = -1 Then
strPfad = .SelectedItems(1)
Else
GoTo Beenden
End If
End With
Set wksZiel = ActiveWorkbook.Worksheets(1)
strPfad = strPfad & Application.PathSeparator
'CSV-Dateien suchen
strDatei = Dir(strPfad & "*.csv")
lngZeile_Z = 1 '1. Einfügezeile
Application.ScreenUpdating = False
Do Until strDatei = ""
Set wkbCSV = Application.Workbooks.Open(Filename:=strPfad & strDatei, _
ReadOnly:=True, Local:=True)
' Set wkbCSV = Application.Workbooks.Open(Filename:=strPfad & strDatei, _
Format:=1, Origin:=xlWindows, ReadOnly:=True, Local:=True)
'Parameter Format: 1 Tabstopps _
2 Kommas _
3 Leerzeichen _
4 Semikolons
'Daten kopieren
wkbCSV.Worksheets(1).Range("A6:m102").Copy wksZiel.Cells(lngZeile_Z, 1)
'Spalten mit Infos zum Sortieren anfügen
With wksZiel
'Dateiname rechts neben den Daten in Spalte N einfügen
.Range(.Cells(lngZeile_Z, 14), .Cells(lngZeile_Z + 97, 14)).Value = strDatei
'fortlaufende Nr. für die 97 Zeilen in Spalte O einfügen
With .Range(.Cells(lngZeile_Z, 15), .Cells(lngZeile_Z + 97, 15))
.FormulaR1C1 = "=ROW()- " & lngZeile_Z & " + 1"
.Calculate
.Value = .Value
End With
End With
'Nächste Einfügezeile
lngZeile_Z = lngZeile_Z + 97
'CSV-Datei wieder schliessen
wkbCSV.Close savechanges:=False
Set wkbCSV = Nothing
strDatei = Dir
Loop
Application.ScreenUpdating = True
Beenden:
End Sub
Danke für Hilfe, welchen Code ich einfügen muss, da bislang alle meine Versuche nicht funktioniert haben.
Gruß
Kathrin
|