Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textdatei in Exel-Tabelle einlesen u. def. anordn.

Textdatei in Exel-Tabelle einlesen u. def. anordn.
vivian
Hallo,
habe eine Textdatei die wie folgt aufgebaut ist/sein kann:
aaa1 bbb1 ccc1 ddd1
aaa2 bbb2 ccc2 ddd2
aaa3 bbb3
(Eigentliche Matrix ist um ein vielfaches größer)
Ich würde gerne diese Werte in einer bestimmten EXCEL-Tabelle untereinander und jeweils in einer Zelle aufgelistet haben.
Die Spalte in der alle Werte eingetragen werden sowie die Startzeile, sollten von mir ausgewählt werden können.
Auflistung sollte wie folgt erfolgen:
aaa1
bbb1
ccc1
ddd1
aaa2
usw…
Ich bekomme es nicht hin, dass am Ende die fehlenden Werte (z.B. ccc3) erkannt werden und in Folge dessen die Auflistung beendet wird.
Schön wäre es auch wenn ich die Möglichkeit hätte die Auflistung zu Splitten und zu versetzen, so dass es z.B. wie folgt aussieht:
aaa3
bbb3

aaa1
bbb1
ccc1
ddd1
aaa2
usw…
Hat jemand eine Lösung in Form eines Codes für mich?
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
04.11.2011 16:10:19
guentherh
Hallo Vivian
https://www.herber.de/bbs/user/77357.xls
die Makros kannst Du Dir auch auf eine eigene Symbolleiste legen, Dann hast Du sie immer verfügbar
lG
Günther
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
04.11.2011 17:24:15
vivian
Hi Günther,
danke Dir für deinen Lösungsvorschlag.
Ich werde sehr viele Textdateien in einer bestimmten Excel-Tabelle einlesen/importieren müssen.
Geschickt wäre es wenn ich nur einmal im Code meiner Excel-Tabele meine Vorgaben eingeben könnte, so dass alle eingelesenen Textdateien bzw. der Inhalt dieser, dementsprechend in meiner Tabelle eingefügt werden.
Hast du eine Idee?
lG Vivi
Anzeige
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
04.11.2011 17:25:01
CitizenX
Hi,
Option Explicit
Sub InportText()
Dim F As Integer
Dim sInhalt As String, strFilename As String
Dim Werte
Dim inZelle As Range
On Error Resume Next
Set inZelle = Application.InputBox("Bitte Zelle zur Ausgabe markieren", "Abfrage", "A1", Type:= _
8)
On Error GoTo 0
If inZelle Is Nothing Then Exit Sub
strFilename = "C:\#######\Test.txt" 'Pfad & Dateiname der Textdatei anpassen
F = FreeFile
Open strFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F
sInhalt = Replace(sInhalt, vbCrLf, vbTab)
Werte = Split(sInhalt, vbTab)
inZelle.Resize(UBound(Werte), 1) = Application.Transpose(Werte)
Set inZelle = Nothing
End Sub

Grüße
Steffen
Anzeige
Mögliche Ursache?
04.11.2011 19:32:02
Christina
Hallo Steffen,
habe eben Dein Programm getestet und es wurde der Laufzeitfehler 13 Typen unverträglich angezeigt.
Möglicherweise habe ich etwas falsch gemacht. Den Text habe ich in Word getippt und als Dateityp txt festgelegt. Woran kann es liegen?
Gruß
Christina Verena
AW: Mögliche Ursache?
04.11.2011 20:26:10
CitizenX
Hi Christina,
an welcher Stelle wird den der Fehler ausgelöst?
Es würde auch helfen wenn du eine Demo Textdatei zur Verfügung stellen könntest.
Grüße
Steffen
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
06.11.2011 18:47:29
vivian
Hallo CitizenX,
dein Lösungsvorschlag ist prima, Danke!
Noch eine Frage.
Was muss ich jetzt noch tun um z.B. die letzten drei, vier oder fünf Werte meiner Textdatei, als erste Werte in meiner Excel-Tabelle eintragen zu lassen.
Bsp.:
1|2|3
4|5|6
7|
wird zu:
|6|
|7|
|1|
|2|
|3|
|4|
|5|
lG Vivian
Anzeige
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
07.11.2011 10:50:06
Reinhard
Hallo Vivian,
ggfs. mußt du
UBound(Werte) - K + 2
und
UBound(Werte) + 1
noch anpassen da ich mit einem array getestet habe was nicht durch Split kam.
Sub InportText()
Dim F As Long, sInhalt As String, strFilename As String, Werte, inZelle As Range
Const K As Long = 3
Const T As String = "Bitte Zelle zur Ausgabe markieren"
On Error Resume Next
Set inZelle = Application.InputBox(T, "Abfrage", "A1", Type:=8)
On Error GoTo 0
If inZelle Is Nothing Then Exit Sub
strFilename = "C:\#######\Test.txt" 'Pfad & Dateiname der Textdatei anpassen
F = FreeFile
Open strFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F
sInhalt = Replace(sInhalt, vbCrLf, vbTab)
Werte = Split(sInhalt, vbTab)
With inZelle.Resize(UBound(Werte) + 1, 1).Offset(K, 0)
.Value = Application.Transpose(Werte)
.Cells(UBound(Werte) - K + 2, 1).Resize(K, 1).Cut inZelle
End With
Set inZelle = Nothing
End Sub

Gruß
Reinhard
Anzeige
AW: Textdatei in Exel-Tabelle einlesen u. def. anordn.
10.11.2011 11:14:28
vivian
Hallo Reinhard,
Vielen Dank.
Konnte den Code anpassen und testen. Klappt prima!
lG Vivian
Mir ist ein Fehler unterlaufen, sorry
04.11.2011 20:56:12
Christina
Hallo Steffen,
ich habe einen Fehler gemacht und diesen nun bemerkt.
Entschuldige bitte meinen überstürzten Beitrag, tut mit leid.
Folgende 2 Programmzeilen sind mir unbekannt:
Open strFilename For Binary As #F
sInhalt = Space$(LOF(F))
Kannst Du mir bitte den Sinn dieser beiden Zeilen erklären.
Ich würde mich darüber freuen.
Einen schönen Abend.
Gruß
Christina Verena

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige