Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1232to1236
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

.txt Dateien auslesen, die Drölfste

.txt Dateien auslesen, die Drölfste
Sebastian
Hallo liebes Herber Forum!
Ich würde gerne .txt Dateien in Excel importieren. Die .txt Dateien haben folgenden Aufbau:
[Vorname]: Kevin Dieter
[Nachname]: Mustermann
[Strasse]: Musterstrasse
Ich habe das ganze schon per einfachen import + RECHTS versucht zu kürzen, musste aber
feststellen, dass manchmal die Einträge auch abweichen können:
[Lieblingsessen]:
Pizza
Döner
Spaghetti
[Hosengröße]: 44
Gibt es eine Möglichkeit im Makro anzugeben, dass er die Einträge zwischen [Lieblingsessen] und
[Hosengröße] in eine Zelle schreibt? Die Anzahl der Zeilen zwischen den Tags kann nämlich variieren.
Vielen Dank im voraus!!!
Gruß
Sebastian
AW: .txt Dateien auslesen, die Drölfste
11.10.2011 10:56:16
Rudi
Hallo,
als Ansatz:

Sub aaaa()
Dim strText, arrDaten(), arrTmp, i As Long, n As Long, strTag As String
Open "c:\test\xtestx.txt" For Input As #1   'anpassen
strText = Split(Input(LOF(1), 1), vbCrLf)
Close #1
For i = LBound(strText) To UBound(strText)
If strText(i)  "" Then
arrTmp = Split(strText(i), ":")
If InStr(arrTmp(0), "[") Then
n = n + 1
ReDim Preserve arrDaten(1 To 2, 1 To n)
arrDaten(1, n) = arrTmp(0)
If UBound(arrTmp) > 0 Then arrDaten(2, n) = arrTmp(1)
Else
arrDaten(2, n) = arrDaten(2, n) & arrTmp(0) & ", "
End If
End If
Next
arrDaten = Application.Transpose(arrDaten)
Sheets.Add.Cells(1, 1).Resize(UBound(arrDaten), 2) = arrDaten
End Sub

Gruß
Rudi
Anzeige
AW: .txt Dateien auslesen, die Drölfste
12.10.2011 16:16:38
Sebastian
Hallo Rudi,
ich habe "test" durch das Auswahlfenster ersetzt. Das Makro stoppt an der Stelle
arrDaten(2, n) = arrDaten(2, n) & arrTmp(0) & ", " mit dem Fehler 9
Und schon wieder bin ich am Ende meines Wissens angelangt.
Weisst du noch einen Tip woran es liegen könnte?
AW: .txt Dateien auslesen, die Drölfste
11.10.2011 11:13:55
Tino
Hallo,
kannst mal testen.

Sub Lese_Txt()
Dim sFile$, F%, sInhalt$
Dim ArrayIn, ArrayAus(), n&, nn&
Dim sZeilenUmbruch
sZeilenUmbruch = Chr(8) & Chr(9) & Chr(10) & Chr(13)
sFile = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If sFile = CStr(False) Then Exit Sub
If Dir$(sFile, vbNormal) <> "" Then
    F = FreeFile
    Open sFile For Binary As #F
    sInhalt = Space$(LOF(F))
    Get #F, , sInhalt
    Close
End If
If sInhalt <> "" Then
    'Text Teilen bei "[" 
    ArrayIn = Split(sInhalt, "[")
    'Array Ausgabe groß genug Dimentionieren 
    Redim Preserve ArrayAus(1 To Ubound(ArrayIn), 1 To 1)
    For n = 1 To Ubound(ArrayIn)
        'prüfen ob Zeichen ] enthalten 
        If InStr(ArrayIn(n), "]") Then
            nn = nn + 1
            'Text entfernen bis ] 
            ArrayIn(n) = Trim$(Mid$(ArrayIn(n), InStr(ArrayIn(n), "]") + 1, Len(ArrayIn(n))))
            ': entfernen wenn am Anfang vorhanden 
            If Left$(ArrayIn(n), 1) = ":" Then ArrayIn(n) = Trim$(Mid$(ArrayIn(n), 2, Len(ArrayIn(n))))
            'Zeilenumbrüche am Anfang und Ende löschen 
            Do While InStr(sZeilenUmbruch, Left$(ArrayIn(n), 1)) > 0
                ArrayIn(n) = Trim$(Mid$(ArrayIn(n), 2, Len(ArrayIn(n))))
            Loop
            Do While InStr(sZeilenUmbruch, Right$(ArrayIn(n), 1)) > 0
                ArrayIn(n) = Trim$(Mid$(ArrayIn(n), 1, Len(ArrayIn(n)) - 1))
            Loop
            'Text in Ausgabe- Array 
            ArrayAus(nn, 1) = ArrayIn(n)
            'ist Text eine Zahl, umwandeln in eine Zahl 
            If IsNumeric(ArrayAus(nn, 1)) Then ArrayAus(nn, 1) = ArrayAus(nn, 1) * 1
        End If
    Next n
End If

If nn > 0 Then
    'Ausgabe, evtl. Tabelle anpassen 
    With Sheets("Tabelle1")
        'Spalte leer machen für neue Daten, evtl. löschen fals nicht benötigt 
        .Range("A2", .Cells(.Rows.Count, 1)).ClearContents
        'Array ausgeben ab A2 
        .Range("A2").Resize(nn) = ArrayAus
    End With
End If
End Sub
Gruß Tino
Anzeige
AW: .txt Dateien auslesen, die Drölfste
12.10.2011 16:02:17
Sebastian
Hallo Tino,
schon mal vielen Dank für die Hilfe. Leider hängt sich Excel beim Ausführen deines Makros auf. Mein Wissen ist aber leider zu klein, um sagen zu können, woran es liegen könnte.
Gruß
Sebastian
AW: .txt Dateien auslesen, die Drölfste
12.10.2011 18:38:10
Tino
Hallo,
lade mal solch eine Textdatei hoch.
Gruß Tino
AW: .txt Dateien auslesen, die Drölfste
13.10.2011 08:33:45
Sebastian
Guten Morgen Tino,
unter folgendem Link findest du eine Muster-Datei:
https://www.herber.de/bbs/user/76978.txt
Das Datum ist dabei der Startpunkt der Informationen und Fragebogen abschicken ist immer das Ende.
Vielen Dank schonmal!!
Gruß
Sebastian
Anzeige
AW: .txt Dateien auslesen, die Drölfste
13.10.2011 14:00:09
Sebastian
Hi Tino.
Dein Beispiel klappt hervorragend, danke.
Kannst du mir noch sagen, an welcher Stelle ich die Anzahl der ausgelesenen Zeilen bestimmen kann, sprich den Array erweitern?
Gruß
Sebastian
AW: .txt Dateien auslesen, die Drölfste
13.10.2011 15:13:12
Tino
Hallo,
die Anzahl Spalten in dem Zweidimensionalen Array für die Ausgabe werden in dieser Zeile festgelegt.

ReDim Preserve ArrayAus(1 To UBound(ArrayIn), 1 To 1)

Die Anzahl der Spalten in diesen Zeilen

If UBound(ArrayAus, 2) 
Gruß Tino
Anzeige
AW: .txt Dateien auslesen, die Drölfste
13.10.2011 16:07:13
Sebastian
Ah, wunderbar.
Klappt.
Vielen Dank!!
Gruß
Sebastian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige