Hallo liebe Gemeinde.
Ich habe folgenden Excelcode „zusammengeschustert“:
Sub Dateninput_starten()
'Dateizuordnung Pfad
Dim strPfad As String
strPfad = ThisWorkbook.Path
'IF-Abfrage für Fühler 1
Fühler1:
If Dir(strPfad & „“ & „Messdaten“ & „“ & „F1.txt“) = „“ And Worksheets(„Grunddaten_Parameter“).Range("$C$60") = „-“ Then GoTo Fühler2:
If Dir(strPfad & „“ & „Messdaten“ & „“ & „F1.txt“) = „“ And Worksheets(„Grunddaten_Parameter“).Range("$C$60") „-“ Then
MsgBox „Datei F1 nicht vorhanden.“
Else
If Dir(strPfad & „“ & „Messdaten“ & „“ & „F1.txt“) „“ And Worksheets(„Grunddaten_Parameter“).Range("$C$60") = „-“ Then
MsgBox „Bitte Fühler 1 benennen oder F1.txt löschen.“
Else
With Worksheets(„Dateninput“).QueryTables.Add(Connection:= _
„TEXT;“ & strPfad & „“ & „Messdaten“ & „“ & „F1.txt“, Destination:= _
Range(„Dateninput!$A$31“))
.Name = „F1“
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(xlDMYFormat, xlSkipColumn, xlGeneralFormat, xlTextFormat)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
'Punkte ersetzen
Dim a As Long
Dim arngZelle As Range, arngBereich As Range
a = Worksheets(„Dateninput“).Cells(Rows.Count, 3).End(xlUp).Row
Set arngBereich = Worksheets(„Dateninput“).Range(„C31“, „C“ & a) 'Bereich hier ändern
For Each arngZelle In arngBereich
arngZelle.Value = Application.WorksheetFunction.Substitute(arngZelle, „.“, „,“) 'Suchen / Ersetzen ändern
Next
End With
End If
End If
End Sub
Der Code macht was er soll - er kopiert mir die Messdaten aus einem Textdokument dort hin wo er soll und ersetzt in einer bestimmten spalte alle Punkte durch Kommas.
Das Problem ist nur, dass das ganze extrem lange dauert. Ich lade manchmal bis zu 60.000 Zeilen rein. Mir ist bewusst, dass das viel ist. Kennt jemand eine effektivere Methode die Punkte zu substituieren? Vielleicht eine die schneller ist?
Oder gibt es eine Möglichkeit Excel mehr Systemressourcen zuzuteilen?
Bin über jede Hilfe dankbar.
Viele Grüße,
Friedrich