Morgen liebe Community,
Ich muss als VBA Neuling ein Makro schreiben, dass mir aus einem Ordner mehrer .dat Datein (Messwerte) in Excel wiedergibt und anschließend die Werte für weiter Berechnungen verarbeiten. Ich habe es soweit realisieren können (durch Recherche), dass mir die .dat Dateien im gleichen Ordner in jeweils einer neuen .xls gespeichert wird. Da ich die werte Weiter verarbeiten möchte und ich es einfach schöner finde wenn er mir die Daten in einer Mappe wiedergibt brauche ich eure Hilfe :).
Also nochmal konkret: Jede .dat in einer .xls auf ein neues Blatt. Mein aktueller Code ist folgender :
Sub DatZuXlsKovertieren_2()
Dim PathAndFileNames As Variant
Dim strPathAndFile$
Dim strPath$
Dim strFileName$
Dim xi&
Dim wbk As Workbook
ChDrive "C:\"
ChDir _
"C:\**\"
PathAndFileNames = Application.GetOpenFilename( _
FileFilter:="Dat Files (*.dat), *.dat", _
Title:="Strg Taste gedrückt halten und mehrere Files anklicken", _
MultiSelect:=True)
If VarType(PathAndFileNames) = vbBoolean Then
MsgBox "Abgebrochen!"
Else
'alle ausgewählen File bearbeiten
For xi& = LBound(PathAndFileNames) To UBound(PathAndFileNames)
strPathAndFile = PathAndFileNames(xi&)
strFileName = Split(Dir(strPathAndFile, 63), ".", -1, 0)(0)
strPath$ = Mid(strPathAndFile, 1, Len(strPathAndFile) - Len(strFileName))
Workbooks.OpenText Filename:=strPathAndFile, _
Origin:=xlMSDOS _
, StartRow:=4, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
, 1), Array(4, 1), Array(5, 1), Array(6, 1)), DecimalSeparator:=".", _
ThousandsSeparator:=" ", TrailingMinusNumbers:=True
Set wbk = ActiveWorkbook
wbk.SaveAs Filename:=strPath & strFileName & ".xls", _
FileFormat:=xlNormal, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
wbk.Close
Next
End If
End Sub
Ich stelle es mir so vor, dass die for-Schleife so geändert werden muss, dass die importierte .dat-Datei auf einem sheet geschrieben wird und dann die nächste auf ein neues sheet in der gleichen Mappe. Der untere Teil hätte sich ja dann erübrigt. Über Anregungen&Tips würde ich mich sehr freuen. Die weiteren Berechnungen sollte ich dann alleine hinbekommen. :)
Dann schon mal Danke.
Grüße
Steph
|