Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textdatei Importieren

Textdatei Importieren
10.12.2004 07:15:42
Marco
Hallo Ihr Lieben ich habe ein bzw. zwei Probleme:
1. Wie Importiere ich mit VBA eine Textdatei hinter eine andere Textdatei nach
Excel zur zeit habe ich eine feste Zelle im Quellcode eingegeben für die
zweite Textdatei will aber das VBA das automatisch erkennt wo die erste
aufhört weil die erste nicht immer gleich groß ist.
2. Wie kann ich den Pfad dynamisch eingeben das wenn der Ordner auf eine
andere Position verschoben wird es ihn auch noch findet wie bei VB.Net
mit einer SQL anweisung.
Geht das Überhaupt wenn ja WIE?
Im Vorraus schon mal Danke für eure Bemühungen.
Hier mein Quellcode:
Function Erstelldat() As Date
Erstelldat = ActiveWorkbook.BuiltinDocumentProperties("Creation date")
End Function

Private Sub CommandButton1_Click()
Open "G:\DV\Weltweit\CN - China\99_Kleer\8_HAENEL\mach01.txt" For Input As #1
Zeile = 1
Do While Not EOF(1)
Line Input #1, s
If Trim(s) <> "" Then
Zeile = Zeile + 1
If Zeile > Rows.Count Then
Sheets.Add
Zeile = 1
End If
Range("A" & Zeile) = Erstelldat()
Range("B" & Zeile) = ("mach01")
Range("C" & Zeile) = Mid(s, 4, 18)
Range("D" & Zeile) = Mid(s, 26, 2)
Range("E" & Zeile) = Mid(s, 30, 3)
Range("F" & Zeile) = Mid(s, 35, 3)
Range("G" & Zeile) = Mid(s, 40, 8)
Range("H" & Zeile) = Mid(s, 50, 3)
Range("I" & Zeile) = Mid(s, 55, 5)
Range("J" & Zeile) = Mid(s, 62, 8)
Range("K" & Zeile) = Mid(s, 72, 2)
Range("L" & Zeile) = Mid(s, 76, 18)
Range("M" & Zeile) = Mid(s, 96, 18)
'ActiveSheet.Range("A" & Zeile) = s
End If
Loop
Close #1
End Sub


Private Sub CommandButton2_Click()
Open "G:\DV\Weltweit\CN - China\99_Kleer\8_HAENEL\mach02.txt" For Input As #1
Zeile = 1500
Do While Not EOF(1)
Line Input #1, s
If Trim(s) <> "" Then
Zeile = Zeile + 1
If Zeile > Rows.Count Then
Sheets.Add
Zeile = 1
End If
Range("A" & Zeile) = Erstelldat()
Range("B" & Zeile) = ("mach02")
Range("C" & Zeile) = Mid(s, 4, 18)
Range("D" & Zeile) = Mid(s, 26, 2)
Range("E" & Zeile) = Mid(s, 30, 3)
Range("F" & Zeile) = Mid(s, 35, 3)
Range("G" & Zeile) = Mid(s, 40, 8)
Range("H" & Zeile) = Mid(s, 50, 3)
Range("I" & Zeile) = Mid(s, 55, 5)
Range("J" & Zeile) = Mid(s, 62, 8)
Range("K" & Zeile) = Mid(s, 72, 2)
Range("L" & Zeile) = Mid(s, 76, 18)
Range("M" & Zeile) = Mid(s, 96, 18)
'ActiveSheet.Range("A" & Zeile) = s
End If
Loop
Close #1
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei Importieren
10.12.2004 08:21:24
Heinz
Hallo Marco,
bei deinem Level solltest du die Zeile
Zeile = 1
entdeckt haben.
mit Cells(Rows.Count,1).End(xlUp).Row + 1 kannst du die erste freie Zeile nach dem ersten Block ermitteln und der Variablen Zeile zuweisen
Zeile = Cells(Rows.Count,1).End(xlUp).Row + 1
Gruß
Heinz
AW: Textdatei Importieren
Marco
Hallo Heintz
Danke hat funktioniert hast du vieleicht auch eine Antwort auf mein
zweites Problem das wäre supper wenn nicht trozdem
vielen Dank
gruß Marco
AW: Textdatei Importieren
10.12.2004 08:33:39
Heinz
Hallo Marco,
wenn du z.B. den Pfad in einer Tabellenzelle ("A1") stehen hast, dann
Open ThisWorkbook.Worksheets("Tab1").Range("A1").Value For Input As #1
Gruß
Heinz
Anzeige
AW: Textdatei Importieren
Marco
Hallo Heinz
habe einen Laufzeitfehler'9'
Index außerhalb desv gültigen Bereichs was soll ich tun
Danke
Gruß Marco
AW: Textdatei Importieren
10.12.2004 08:51:27
Heinz
Hallo Marco,
dann hast du in deinem Text nach Open einen Fehler.
Entweder existiert die angegebene Tabelle nicht oder der in der angegebenen Zelle stehende Pfad stimmt nicht. Wahrscheinlich ersteres.
Gruß
Heinz
AW: Textdatei Importieren
Marco
Hallo Heinz
Habe den Pfad aus dem Quellcode Kopiert und eingefügt könnte normalerweise nicht falsch sein der Pfad steht so in der Zelle:
"G:\DV\Weltweit\CN - China\99_Kleer\8_HAENEL\mach01.txt"
hatte die Anführungszeichen auch schon weggelassen aber es geht nichts oder muß ich was im Quellcode ändern.
nochmals Danke
Gruß
Marco
Anzeige
AW: Textdatei Importieren
10.12.2004 09:08:03
Heinz
Hallo Marco,
welchen Tabellennamen hast du denn eingetragen? Wenn du mein "Tab1" belassen hast, dann kann es nicht funktionieren, denn diesen Tabellennamen hast du bestimmt nicht.
Du musst den richtigen Pfad zur Zelle (Tabellenname und Zelladresse und evetntuell sogar die Datei - ich habe ja mit ThisWorkbook angenommen, dass diese Zelle in derselben Datei steht wie der Makro-Code), in der der Pfad steht, angeben.
Gruß
Heinz
AW: Textdatei Importieren
Marco
Hallo Heinz
habe den Tabellenname im Quellcode geändert war falsch jetzt stehe ich auf dem Schlauch
weil ich nichts mit der Zelladresse anfangen kann und in welcher reihenfolge muß ich das eingeben hatte so was noch nie gemacht kannst du mir ein Beispiel schreiben.
Danke
Gruß Marco
Anzeige
AW: Textdatei Importieren
10.12.2004 09:22:19
Heinz
Hallo Marco,
ich habs getestet, es funktioniert.
Hier der adaptierte Code:

Private Sub CommandButton1_Click()
Open ThisWorkbook.Worksheets("Tabelle1").Range("A1").Value For Input As #1
'bedeutet, dass der Pfad aus Zelle A1 der Tabelle "Tabelle1" aus demselben Workbook ausgelesen wird, in der dieser Code steht
'in der Zelle A1 muss stehen: G:\DV\Weltweit\CN - China\99_Kleer\8_HAENEL\mach01.txt - also ohne Anführungszeichen!!!
Zeile = 1
Do While Not EOF(1)
Line Input #1, s
If Trim(s) <> "" Then
Zeile = Zeile + 1
If Zeile > Rows.Count Then
Sheets.Add
Zeile = 1
End If
Range("A" & Zeile) = Erstelldat()
Range("B" & Zeile) = ("mach01")
Range("C" & Zeile) = Mid(s, 4, 18)
Range("D" & Zeile) = Mid(s, 26, 2)
Range("E" & Zeile) = Mid(s, 30, 3)
Range("F" & Zeile) = Mid(s, 35, 3)
Range("G" & Zeile) = Mid(s, 40, 8)
Range("H" & Zeile) = Mid(s, 50, 3)
Range("I" & Zeile) = Mid(s, 55, 5)
Range("J" & Zeile) = Mid(s, 62, 8)
Range("K" & Zeile) = Mid(s, 72, 2)
Range("L" & Zeile) = Mid(s, 76, 18)
Range("M" & Zeile) = Mid(s, 96, 18)
'ActiveSheet.Range("A" & Zeile) = s
End If
Loop
Close #1
End Sub

Gruß
Heinz
Anzeige
AW: Textdatei Importieren
Marco
Hallo Heinz
Du hast mir sehr geholfen es funktioniert ich hatte die Anführungszeichen noch in der Zelle.
Vielen vielen Dank
fals wie nichts mehr von uns hören wünsche ich die jetzt schon
FROHE WEIHNACHTEN UND EINEN GUTEN RUTSCH IN NEUE JAHR.
Gruß Marco

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige