Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

textdatei verschieben nach oeffnen

textdatei verschieben nach oeffnen
02.05.2005 11:32:59
roland_k
hi zusammen
ich hole in ne tabelle verschiedene textteile aus ner textdatei.
dies funkt jetzt so weit gut
mit der anweisung:Open strDatei For Input As #1
oeffne ich die datei und lese daten aus
nu will ich diese datei aber nach dem auslesen in nen andern ordner verschieben
in C:\Archiv
wie muss die anweisung hierzu heissen ?
danke im voraus
roland_k

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textdatei verschieben nach oeffnen
02.05.2005 11:46:15
MichaV
Moin,
nach dem Schließen der Datei mit Close kannst Du mit der Name- Anweisung die Dateie verschieben.:
AlterName = "C:\VERZ1\DATEIALT": Neuername = "C:\VERZ2\DATEINEU"
Name AlterName As Neuername ' Datei verschieben und umbenennen.
Gruß- Micha
kapiere mal wieder nix
02.05.2005 12:16:54
roland_k
hi micha
blicks mal wieder nicht
ich kopiere mal den ganzen code:

Sub modul_Import_punkte()
Dim strDatei As String
Do While True
strDatei = GetSingleFile                                     ' Dateinamen holen
If Len(strDatei) = 0 Then Exit Do
'LiesSpielbericht strDatei
Dim i As Long
Dim Zeilen() As String 'speichert die x zuletzt eingelesenen Zeilen
Const x = 16 'x.-te Zeile von unten wird gesucht
ReDim Zeilen(1 To x)
'Open "C:\excel\geld_skat\test_LST\1.lst" For Input As #1
Open strDatei For Input As #1
i = 0
Do While Not EOF(1)
For i = 2 To x
Zeilen(i - 1) = Zeilen(i)
Next i
Line Input #1, Zeilen(x)
Loop
Close #1
'MsgBox x & "-te Zeile von unten:" & Zeilen(1)
spalte = Cells(5, 99).End(xlToLeft).Column
zeile = Cells(66, 2).End(xlUp).Row
For i = 1 To x
datum1 = Right(strDatei, 21)
datum2 = Left(datum1, 8)
If i = 1 Then Cells(i - 1 + 3, spalte + 1) = datum2
zeit1 = Right(strDatei, 12)
zeit2 = Left(zeit1, 5)
If i = 1 Then Cells(i + 3, spalte + 1) = zeit2
If i = 5 Then Cells(i + 0, spalte + 1) = Left((Zeilen(i)), InStr(1, (Zeilen(i)), " ") - 1)
If i = 7 Then Cells(i - 1, spalte + 1) = Val(Mid(Zeilen(i), 15, 5))
If i = 9 Then Cells(i - 1, spalte + 1) = Left((Zeilen(i)), InStr(1, (Zeilen(i)), " ") - 1)
If i = 11 Then Cells(i - 2, spalte + 1) = Val(Mid(Zeilen(i), 15, 5))
If i = 13 Then Cells(i - 2, spalte + 1) = Left((Zeilen(i)), InStr(1, (Zeilen(i)), " ") - 1)
If i = 15 Then Cells(i - 3, spalte + 1) = Val(Mid(Zeilen(i), 15, 5))
'MsgBox i & "-te Zeile von unten:" & Zeilen(i)
Next i
Loop
End Sub

wo oder wie schliesse ich nun die datei?
und dann verschieben in C\archiv
also ich will dass die bearbeitet datei nicht mehr in dem ursprungsordner vorhanden ist um zu vermeiden dass ne datei zweimal einlese
zudem stehn dann im ursprungs ordner immer nur die dateien die noch nicht eingelsen sind
danke ..dir wenn das nochmal anschaust
gruss roland_k
Anzeige
AW: kapiere mal wieder nix
02.05.2005 12:43:34
MichaV
Hi,
klaro. Hast den Code ja schon ganzschön erweitert...
Also, nach Close #1 schreibst Du
Name strDatei as "C:\Archiv\" & Right(strDatei, Len(strDatei) - InStrRev(strDatei, "\"))
Erklärung:
-strDatei ist der altePfad und alter Dateiname
-Mit Right(strDatei, Len(strDatei) - InStrRev(strDatei, "\")) extrahierst Du den Dateinamen aus strDatei.
-"C:\Archiv\" & Right(strDatei, Len(strDatei) - InStrRev(strDatei, "\")) ist dann der neue Pfad und der alte Dateiname.
Name ... As ... verschiebt die Datei.
Gruß- Micha
PS: noch ein Tip: Deine untere For- Next- Schleife ist m.E. nach sinnfrei. Anstelle von

If i = 5 Then Cells(i + 0, spalte + 1) = Left((Zeilen(i)), InStr(1, (Zeilen(i)), " ") - 1)
If i = 7 Then Cells(i - 1, spalte + 1) = Val(Mid(Zeilen(i), 15, 5))
kannst Du schreiben:
Cells(5 + 0, spalte + 1) = Left((Zeilen(5)), InStr(1, (Zeilen(5)), " ") - 1)
Cells(7 - 1, spalte + 1) = Val(Mid(Zeilen(7), 15, 5))

Wenn Du das auf alle If i=?- Zeilen anwendest, kannst Du auf die For- Next- Schleife verzichten. Dein Code wird dadurch ungeführ um den Faktor x (hier:12) schneller, weil die Zeilen ja nur 1 mal und nicht 12 mal abgearbeitet werden müssen.
Aber so wie Du es hast funzt es ja auch, is halt nur ein bischen umständlich.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige