Open for... schneller
Henrik
habe folgendes Problem.
Es sollen in einem lokalem Ordner alle *.csv Dateien nacheinander gelesen werden (ca.1500).
In jeder *.csv Datei sollen dann bestimmte strings ersetzt werden. Dieser Weg funktioniert auch.
Mit untenstehenden Code-Teil bin ich aber unzufrieden. Der dauert sehr lange und arbeitet mit einer Hilfskrücke, weil ich es nicht besser weiß.
Die *.csv Datei wird über open for input zeilenweise ausgelesen.
Diese Zeilen werden dann in eine neue Arbeitsmappe geschrieben und diese dann gespeichert.
Gibt es irgendwie die Möglichkeit, die *.csv Datei, die als Input geöffnet ist, direkt zu ändern?
Also keine extra Arbeitsmappe erstellen, sondern in der Art:
1. Öffne Datei
2. Lese erste Zeile, ändere diese und schreib sie gleich zurück
3. nächste zeile lesen, ändern, speichern (schreiben)
...
x. Datei speichern, schließen
Danke für Eure Hilfe
Henrik
Sub Dateioeffnenaendern(DateiNameundPfad)
Dim tmpInhaltZeile, tmpInhaltZeileNeu, AnzahlTrenner, zae1, PfadNeu, NameNeu
Application.ScreenUpdating = False
On Error Resume Next
Open DateiNameundPfad For Input As #1
Workbooks.Add
PfadNeu = Left(DateiNameundPfad, InStr(1, DateiNameundPfad, "Trend_") - 1)
NameNeu = Right(DateiNameundPfad, Len(DateiNameundPfad) - InStr(1, DateiNameundPfad,
"Trend_") + 1)
NameNeu = Replace(NameNeu, "Trend_", "")
ActiveWorkbook.SaveAs Filename:=PfadNeu & NameNeu, FileFormat:=xlCSV, local:=True
zae1 = 1
Do While Not EOF(1)
Line Input #1, tmpInhaltZeile
AnzahlTrenner = UBound(Split(tmpInhaltZeile, ";"))
If AnzahlTrenner