Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

TXT-Dateien in eine Exceldatei einlesen

TXT-Dateien in eine Exceldatei einlesen
21.03.2013 15:01:17
Carl
Hallo,
mir fehlt noch der Code um viele TXT-Dateien in eine Exceldatei einzulesen. Sie sind "wahllos" betitelt. Aus meinem anderen Thread (Nur bestimmte Ordner auslesen) weiß ich ja, dass man dazu ähnliche Namen braucht. Aber das ist kein Problem, da ich einen Renamer habe.
Wen(n) es interessiert, das war der Ausgangspunkt: https://www.herber.de/forum/archiv/1300to1304/t1303980.htm.
Gruß
Carl

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 08:59:32
Oberschlumpf
Hi Carl
Hab noch ne Frage zu den txt-Einträgen in deiner gezeigten txt-Datei.
In deinen einzelnen Textdateien sind NICHT die Trennlinien "----" vorhanden, oder?
Die Trennlinien sind nur in der hier gezeigten sammel-txt-Datei, oder?
Ciao
Thorsten

AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 11:16:39
Carl
Hallo Thorsten,
doch, diese Trennlinie ist immer zwischen jeder Mail vorhanden. In den Exportoptionen habe ich am Standard der Schablone nichts verändert. Die Vorgabe war: Benutze dieses Trennzeichen, Anzahl der Wiederholungen, Leerzeile vor/nach jeder Nachricht einfügen.
Gruß
Carl

AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 16:37:00
Oberschlumpf
Hi Carl
So, hier ist meine Idee.
Ich habe mal ein "Datei-Paket" zusammengeschnürt.
Es beinhaltet mehrere txt-Dateien + meine Excel-Datei.
Die txt-Dateien sehen einzeln so aus, wie ich dich verstanden habe, wie sie auch bei dir aussehen. Also schau sie dir mal einzeln an.
Genau so hab ich auch Dateinamen verwendet, die gar nichts gemeinsam haben - also total unterschiedliche Dateinamen für die txt-Dateien. Deine Vermutung, dass du die Namen der txt-Dateien anpassen musst, ist nicht richtig.
Da du nichts dazu geschrieben hattest, oder ich es vielleicht auc nicht erkannt habe, gehe ich davon aus, dass alle txt-Dateien im gleichen Verzeichnis sind.
Und so ist meine Exceldatei auch aufgebaut.
Du musst also den Inhalt des Datei-Paketes in ein und das selbe Verzeichnis speichern.
Und das ist auch wichtig.
Du musst wirklich vorher alle Dateien entpacken.
Man könnte zwar die Excel-Datei direkt in der ZIP-Datei starten, aber das würde nichts bringen.
Nun denn, hier, guck mal:
https://www.herber.de/bbs/user/84507.zip
Nachdem du alle Dateien entpackt hast, starte die Excel-Datei.
Und über Extras/Makro/Makros kannst du das Makro "sbTxtEinlesen" starten.
Hilfts?
Ciao
Thorsten

Anzeige
AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 16:53:42
Carl
Hallo Thorsten,
meine Vermutung, dass die Namen der TXT-Dateien ähnlich sein sollten, die basierte darauf, dass man im anderen Thread eine Namensgleichheit gebraucht hat, denn sonst wären die falschen Namen eingelesen worden. Ja, die TXT sind alle im gleichen Verzeichnis. Selbst wenn nicht, die wären gleich verschoben.
Einstweilen mal ein Danke. Ich teste sie demnächst.
Gruß
Carl

AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 17:09:15
Carl
Hallo Thorsten,
das funktioniert gut, viele meiner Dateien erscheinen, aber ich erhalte auch den Laufzeitfehler 1004:
.Sheets(1).Range("A" & liRow).Value = lstrInhalt
Kann man den Fehler eingrenzen?
Gruß
Carl

Anzeige
AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 18:08:46
Oberschlumpf
Hi Carl
Um die Möglichkeit zu haben, den Fehler korrigieren zu können, müsste ich genau die txt-Datei kennen, die beim Einlesen den Fehler erzeugt.
Wenn du eben genau diese Datei nicht zeigen magst, was ich wegen Intim usw :-) verstehen kann, weiß ich aber leider auch nicht, wie ich helfen kann.
Was du mal versuchen kannst, ist, dass du die Datei, die den Fehler verursacht, mal aus dem Verzeichnis mit den vielen anderen Dateien entfernst, also in ein anderes Verzeichnis verschiebst.
Um welche Datei es sich bei dem Fehler handelt (wenn du jetzt noch nicht weißt, welche Datei das ist), kannst du so herausbekommen:
1. Starte mein Makro
2. Wenn der Fehler kommt, klicke auf Debuggen; es öffnet sich der VBE und die Fehlerzeile wird markiert
(ok, das kennst du ja schon, da du die Fehlerzeile ja aufgeschrieben hast)
3. Beweg den Mauszeiger im Code über das Wort lstrFile, oder klick mit der rechten Maustaste darauf und wähle "Überwachen" aus
Nun sollte der Inhalt von lstrFile angezeigt werden, und du weißt, welche Datei den Fehler verursacht
4. Beende das Makro
5. Entferne die eine txt-datei
6. Starte das Makro erneut
Hilfts?
Ciao
Thorsten

Anzeige
AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 19:10:27
Carl
Hallo Thorsten,
es geht mir nicht darum, dass ich die Datei nicht zeigen möchte. ;-) Ich wusste nur nicht welche Datei es ist, wie man vorgeht. Danke für die Aufklärung, denn Punkt 3 zeigt mir, wie ich es herausfinde. Es ist strInhalt = "======".
Die Datei mit dem Inhalt ====== werde ich schon finden. Es sind 90 Dateien die ich durchgehen muss.
Gruß
Carl

AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 19:26:54
Oberschlumpf
Hi Carl
Hmm....strInhalt erhält innerhalb aus jeder Datei jede einzelne Zeile, die dann nach Excel in die Tabelle übertragen wird.
Punkt 3 beschreibt übrigens lstrFile und nicht strInhalt ;-)
Halte den Mauszeiger also über lstrFile.
Denn der Inhalt aus strInhalt = "======" wirst du wohl in jeder Datei haben - als Trennzeile am Ende jeder Mail, oder?
Na ja, du wirst den "Übeltäter" schon finden, denke ich ;-)
Ciao
Thorsten

Anzeige
AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 19:36:35
Carl
Hallo Thorsten,
Fehler gefunden! Ich habe mich von der Markierung blenden lassen, deswegen strInhalt. Bei lstrFile wird die Datei mit dem Namen genannt. Aber in einem Punkt irrst Du Dich:
Der Inhalt aus strInhalt ist ======, die Trennzeile am Ende jeder Mail ------.
Gruß
Carl

AW: TXT-Dateien in eine Exceldatei einlesen
22.03.2013 19:42:00
Oberschlumpf
Hi
Ja, hatte gerad n Geistesblitz bzgl "===" :-)
Siehe mein anderer, neuer Eintrag ;-)
Ciao

noch ne andere Idee
22.03.2013 19:40:52
Oberschlumpf
Hi Carl
Der Fehler kann tatsächlich genau am Inhalt "====" liegen.
Ändere mal den Code wie folgt:
aus alein dieser Zeile
.Sheets(1).Range("A" & liRow).Value = lstrInhalt
machst du:

If Left(lstrInhalt, 1) = "=" Then
.Sheets(1).Range("A" & liRow).Value = "'" & lstrInhalt
Else
.Sheets(1).Range("A" & liRow).Value = lstrInhalt
End If
Hilfts?
Da Excel das "=" zur Formelbildung benötigt, kommt Excel "durcheinander", wenn in eine Zelle mehr als nur 1x "=" eingetragen wird.
Wenn aber als erstes Zeichen ein "'" gesetzt wird und erst dann das "=", dann interpretiert Excel diesen Eintrag als Text und nihct als Beginn einer Formel.
Nun sollte der Code durchlaufen, oder?
Ciao
Thorsten

Anzeige
AW: noch ne andere Idee
23.03.2013 11:44:32
Carl
Hallo Thorsten,
ja, das funktioniert super.
VIELEN DANK!
Gruß
Carl

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige