steinbock86
Goto Top

Mehrere txt Dateien in Excel schreiben

Hallo

Kennt sich jemand mit vb skripten aus?
Habe mehrere txt Dateien die müssen ausgelesen werden und in ein Excel geschrieben werden.

Die txt Dateien sind so aufgebaut. Der erste teil bis zum komma sind immer die überschriften die in die spalten müsse und der teil nach dem komma muss jeweils die Spalte drunter.

txt Datei:
"Hallo","alles klar"
"Blabababbab","yyyyyyyyy"

Content-Key: 223789

Url: https://administrator.de/contentid/223789

Printed on: April 20, 2024 at 02:04 o'clock

Member: Meierjo
Meierjo Dec 05, 2013 updated at 17:36:43 (UTC)
Goto Top
Hallo Steinbock86

Und wie soll das Ganze dann aussehen, sollen die Daten aus
Textfile A in die Zeilen 1 und 2 geschrieben werden
Textfile B in die Zeilen 3 und 4
Textfile C in die Zeilen 5 und 6

Oder sollen alle Textfiles in die Zeilen 1 uns 2 geschrieben werden?

Wieviele Textdateien sind das?
Wieviele Zeilen hat jedes Textfile?


http://www.file-upload.net/download-8367666/Import_alle_TxtFiles.xlsm.h ...
http://www.file-upload.net/download-8367665/Text-A.txt.html
http://www.file-upload.net/download-8367664/Text-B.txt.html
http://www.file-upload.net/download-8367667/Text-C.txt.html

Habe mal eine XLSM Datei hochgeladen, und 3 Beispiel-Textfiles.
Vor dem starten des Makros mit ALT + F11 in die Entwicklungsumgebung wechseln, und den Pfad in Zeile 6 anpassen
allenfalls noch die Erweiterung (*.txt) in Zeile 7 anpassen.

Dann werden alle Textfiles im angegebenen Pfad der Reihe nach eingelesen, Ueberschrift in Zeile 1, der Text in Zeile 2


Gruss meierjo
Member: TsukiSan
TsukiSan Dec 05, 2013 at 23:03:24 (UTC)
Goto Top
Kennt sich jemand mit vb skripten aus?

Hallo steinbock86 und Willkommen im Forum,

dein Frage kann ich mit Ja beantworten. In diesem Forum wirst du mehr als fündig.
Aber ob dir jemand für lau ein massgeschneidertes Script bastelt, weiss ich nicht.
Wir sind hier ein Forum, dass Probleme durchkaut und nach Lösungen schaut und diese
auch meistens zum Schluss findet.

VB-script - meinst du VBS? Wie ist dein Ansatz deines Scriptes? Oder sind die Zeilen geheim?

Gruss
Tsuki
Member: steinbock86
steinbock86 Dec 08, 2013 at 10:57:33 (UTC)
Goto Top
Super danke für eure Hilfe funktioniert auch
Hab nur noch ein Problem und zwar ich hab so 100 txt Dateien die sind aber unterschiedlich aufgebaut und zwar so:

Beispiel 1.txt Datei sieht so aus:
"erstens","blabla"
"zweitens","vvvvvv"

2.txt Datei sieht so aus:
"erstens","bbbbb"
"zweitens","ggggg"
"drittens","yyyy"
"viertens","zzzz"

und z.b. die 52. txt Datei sieht so aus:
"erstens","kkkk"
"zweitens","lllllll"
"drittens","ppppp"

Die muss ich jetzt auslesen und folgendermaßen in excel importieren. Das was vor dem "Komma" steht ist die Überschrift.

Excel (mal die 1. und 2. txt Datei, der Rest folgt drunter):

"erstens" "zweitens"
"blabla" "vvvvvv"
idealerweise jetzt eine Zeile freilassen, dann 2.txt datei
"erstens" "zweitens" "drittens" "viertens"
"bbbbb" "ggggg" "yyyy" "zzzz"
Member: Meierjo
Solution Meierjo Dec 08, 2013, updated at Dec 09, 2013 at 07:16:44 (UTC)
Goto Top
Hallo

Dann könnte der Code in etwa so aussehen
Sub Import_alle_TxtFiles()

    Dim X As Double
    Dim y As Double
    Dim Txt1 As String
    Dim Txt2 As String
    Dim Datei As String
    Dim PFAD As String
    
    PFAD = "D:\Temp\"  
    Datei = Dir(PFAD & "*.txt")  
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Cells.Delete
    X = 0
    y = 0
    Do While Datei <> ""  
        X = 0
        Open PFAD & "\" & Datei For Input As #1  
        Do While Not EOF(1)
        Input #1, Txt1, Txt2
            Cells(1, 1).Offset(y, X) = Txt1
            Cells(2, 1).Offset(y, X) = Txt2
            X = X + 1
        Loop
        Close #1
        Datei = Dir()
        y = y + 3
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Gruss meierjo

[Edit Biber] Codetags. [/Edit]
Member: steinbock86
steinbock86 Dec 09, 2013 at 06:52:36 (UTC)
Goto Top
jetzt fehlt mir nur noch folgendes:

und zwar ist jede txt datei unter einem benutzernamen abgespeichert der müsste jeweils in Spalte A stehen. also z.b.
st-name_XYZ_bla.txt............wobei nur name jeder seinen eigenen hat der rest(st-_XYZ_bla.txt ist bei allen gleich)

Also z.B. bei der 52. txt Datei müsste dann in Excel stehen


Spalte A Spalte B Spalte C Spalte D
name "erstens" "zweitens" "drittens"
"kkkk" "lllllll" "ppppp"
Member: Meierjo
Meierjo Dec 09, 2013 at 07:00:32 (UTC)
Goto Top
Hallo

Du meinst, der Dateiname ist derjeinge des Benutzers, oder hat du pro Benutzername ein Verzeichnis??

gruss
Member: steinbock86
steinbock86 Dec 09, 2013 at 07:23:10 (UTC)
Goto Top
der Dateiname ist derjeinge des Benutzers
Member: Meierjo
Meierjo Dec 09, 2013 updated at 09:33:52 (UTC)
Goto Top
Hallo
Probiers mal so

Sub Import_alle_TxtFiles()
    Dim X As Double
    Dim Y As Double
    Dim Txt1 As String
    Dim Txt2 As String
    Dim Datei As String
    Dim PFAD As String
    PFAD = "E:\Excel\"  
    Datei = Dir(PFAD & "*.txt")  
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Cells.Delete
    'X = 0  
    Y = 0
    Do While Datei <> ""  
    X = 1
    Open PFAD & "\" & Datei For Input As #1  
    Cells(Y + 1, 1).Value = Datei
    Do While Not EOF(1)
        Input #1, Txt1, Txt2
            Cells(1, 1).Offset(Y, X) = Txt1
            Cells(2, 1).Offset(Y, X) = Txt2
            X = X + 1
        Loop
        Close #1
        Datei = Dir()
        Y = Y + 3
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Gruss

[Edit Biber] Codetags. [/Edit]
Member: steinbock86
steinbock86 Dec 09, 2013 at 09:14:16 (UTC)
Goto Top
weltklasse danke dir
Member: steinbock86
steinbock86 Dec 09, 2013 at 17:38:14 (UTC)
Goto Top
jetzt fehlt mir nur noch folgendes und zwar soll es in der Excel Datei so ausschauen wie unten:

Es gibt noch einen Hacken und zwar sind die txt Dateien unterschiedlich aufgebaut, siehe beispielsweise 3.txt datei es gibt noch mehrere solcher

z.b. ist die 3. txt datei so aufgebaut:
"erstens","aaaaa"
"viertens","cccc"
"fünftens", "yyyyyyy"


Es ist ja so dass die txt Dateien unterschiedliche Länge an Überschriften haben, aber max. 25.


hier die ExcelDatei

name "erstens" "zweitens" "drittens" "viertens" "fünftens"............."fünfundzwanzigstens" (Spaltenüberschriften in Excel A-E)
(eine Zeile frei idealerweise)
Dateiname 1.txt datei "blabla" "vvvvvv"
Dateiname 2.txt datei "bbbbb" "ggggg" "yyyy" "zzzz"
Dateinname 3. txt datei "aaaaa" "cccc" "yyyyyyy"

.
.
Dateiname 52.txt datei "kkkk" "lllllll" "ppppp"
Member: Meierjo
Meierjo Dec 10, 2013 at 05:27:52 (UTC)
Goto Top
Hallo und guten morgen

Verstehe nicht ganz, was du meinst.
Sind maximal 25 Ueberschriften pro Textdatei? Soll immer der Inhalt aus "erstens", "zweitens", "fünftens", etc untereinander aufgelistet werden?

Oder sind pro Zeile mal 2 Inhalte, wie in Dateiname 1.txt, mal 4 Inhalte, wie in Dateiname 2.txt
Oder ist das Problem, dass nicht immer mit Komma getrennt wird zwischen Ueberschrift und Inhalt?

Gruss
Member: steinbock86
steinbock86 Dec 10, 2013 at 11:36:49 (UTC)
Goto Top
Entschuldigung die seite hier hat die formatierung (die ganze leerzeichen) sodass eben die 3.txt datei des "cccc" unter "viertens" steht und des "yyyyyyy" unter "fünftens"
steht nicht übernommen. das war des problem


z.b. ist die 3. txt datei so aufgebaut:
"erstens","aaaaa"
"viertens","cccc"
"fünftens", "yyyyyyy"


es sind max. 29 Überschriften pro txt datei. Genau der Inhalt aus "erstens", "zweitens", "fünftens", etc soll untereinander aufgelistet werden und es sind pro Zeile mal 2 Inhalte, wie in Dateiname 1.txt, mal 4 Inhalte, wie in Dateiname 2.txt. Am Ende soll man dann jeweils in den Spalten filtern können.

Die Excel müsste so ausschauen (ich schreib die Zellen mit dahinter in Klammern)

name(A1) "erstens"(B1) "zweitens"(C1) "drittens"(D1) "viertens"(E1) "fünftens"(F1)............."neunundzwanzigstens"(AC1) (Spaltenüberschriften in Excel A-AC)
(eine Zeile frei idealerweise)
Dateiname 1.txt datei(A2) "blabla"(B2) "vvvvvv"(C2)
Dateiname 2.txt datei(A3) "bbbbb"(B3) "ggggg"(C3) "yyyy"(D3) "zzzz"(E3)
Dateinname 3. txt datei(A4) "aaaaa"(B4) "cccc"(E4) "yyyyyyy"(F4)

.
.
.
.
runter bis ende verzeichnis
Member: Meierjo
Meierjo Dec 10, 2013 at 12:53:50 (UTC)
Goto Top
Hallo

Ok, jetzt wird's aber langsam kompliziert.

Hat denn die erste Datei, die eingelesen weren soll, immer alle Spalten-Ueberschriften (erstens bis neunundzwangistens), (Was für ein Wort face-smile face-smile), oder sind da auch schon Lücken drin??

Gruss
Member: steinbock86
steinbock86 Dec 10, 2013 at 12:59:12 (UTC)
Goto Top
da sind lücken drin.....es hat keine datei alle 29 überschriften, des maximale was eine datei hat sind 25 Überschriften.

z.b. ist die 3. txt datei so aufgebaut:
"erstens","aaaaa"
"viertens","cccc"
"fünftens", "yyyyyyy"

die 11.txt datei ist so aufgebaut:
"erstens","vvvvv"
"zweitens","yyyyy"
"fünftzehntens","ssssss"

da muss man wahrscheinlich alles umschreiben oder?
Member: steinbock86
steinbock86 Dec 10, 2013 at 14:14:38 (UTC)
Goto Top
habs danke dir face-smile