Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1196to1200
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
Inhaltsverzeichnis

Import TXT-Dateien

Import TXT-Dateien
Heike
Hallo,
ich möchte die Inhalte mehrere TXT-Dateien in einer Excel-Tabelle per VBA importiere. Alle TXT-Dateien liegen im selben Ordner und werden monatlich überschrieben und wieder neu importiert.
Die TXT-Dateien sind identisch aufgebaut, und zwar: 20.12.2010 dann fünf Leerstellen 1200,50 (mehr nicht :-)
Bei meiner Recherche habe ich einen Code gefunden, der auch funktioniert. Grundsätzlich werden mit diesem die Daten in Zelle A1 eingelesen, und zwar in 1 Zelle. Aaaaber, nun mein Problem: Ich möchte, dass das Datum immer in Zelle G2 und der Betrag in E2 eingetragen wird.
Habe mit dem Makrorecorder das Importieren zwar aufgezeichnet aber 1. bleiben die Ursprungsdaten (A1) erhalten und 2. werden die Daten in E2 und F2 eingetragen.
Würde mich sehr freuen, wenn sich jemand meinen Code ansehen und entsprechend erweitern würde.
Vielen vielen Dank schon einmal im Voraus
Viele Grüße
https://www.herber.de/bbs/user/73190.xls

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Import TXT-Dateien
22.01.2011 18:19:35
fcs
Hallo Heike,
mit folgenden Anpassungen on der Sub "ReadTxtFile" sollten Datum und Betrag in die richtigen Spalten eingetragen werden.
Gruß
Franz
Private Sub ReadTxtFile(ByVal strFileName As String, ByRef lngZeile As Long)
Dim intHandle  As Integer  ' Dateihandle
Dim strOneLine As String   ' Eine Zeile aus der Datei
intHandle = FreeFile
Open strFileName For Input As #intHandle
While Not EOF(intHandle)
Line Input #intHandle, strOneLine
'Datum in Spalte G eintragen
If IsDate(Left(strOneLine, 10)) Then
Cells(lngZeile, 7) = CDate(Left(strOneLine, 10))
Else
Cells(lngZeile, 7) = Left(strOneLine, 10)
End If
'Betrag in Spalte E eintragen
If IsNumeric(Trim(Mid(strOneLine, 11))) Then
Cells(lngZeile, 5) = CDbl(Trim(Mid(strOneLine, 11)))
Else
Cells(lngZeile, 5) = Trim(Mid(strOneLine, 11))
End If
lngZeile = lngZeile + 1
Wend
Close #intHandle
End Sub

Anzeige
suuuper genial
22.01.2011 18:34:40
Heike
Hallo Franz,
das ist ja schön, dass du dich schon wieder meinem Problem annimmst **freu freu**
Dein Code funktioniert genau so, wie ich es möchte, hunderdtausendmillionen mal Danke :-)))
Habe die halbe Nacht und schon den halben Tag recherchiert, ausprobiert usw. nix gebracht und hier bekomme ich innerhalb kürzester Zeit von dir die Lösung!
Wünsche dir ein schönes Wochenende
Heike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige