Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Import Zeilen aus Textdatei in Excel Spalten
#1
Hallo,

ich habe folgendes Problem. Ich möchte gerne den Inhalt einer Textdatei in Excel importieren und am besten gleich beim Import die derzeit innerhalb derselben Zeile angeordneten Buchstaben und Zahlen jeweils innerhalb einer Excel Zeile in mehrere Spalten aufteilen. Als Hinweis für die Anordnung eines Wortes einer Zeile in einer eigenen Excel Spalte sollten folgende 6 Trennzeichen gelten: = (  ((  (  )) ,  Diese Trennzeichen sollten beim Aufteilen in die Spalten gleichzeitig gelöscht werden. Nachfolgend ein Beispiel anhand einer Zeile:

Zeile: Montag = Tennis ((Turnschuhe, Tennisschläger, Kleidung (T-Shirt, kurze Hose))

Spalten:             A                 B               C                       D                    E              F              G
Zeilen:     1    Montag      Tennis     Turnschuhe     Tennisschläger     Kleidung    T-Shirt    kurze Hose


Da das Textdokument mehrere tausend Zeilen beinhaltet sollte der Import rasch funktionieren. Ich habe bereits versucht zuerst den Text in die Excel Datei zu kopieren und anschließend durch ein Makro die oben genannten Trennzeichen durch Beistriche zu ersetzen und anschließend anhand dieses Trennzeichens die Aufteilung in die Spalten vornehmen zu lassen. Leider hat die Ausführung dieser Befehle ewig gedauert und ist so nicht anwendbar.
Antworten Top
#2
Hi Sunny,

mit einer Hilfsspalte würde ich es so lösen:

Tabelle2

AB
1Montag = Tennis ((Turnschuhe, Tennisschläger, Kleidung (T-Shirt, kurze Hose))Montag # Tennis ##Turnschuhe# Tennisschläger# Kleidung #T-Shirt# kurze Hose##
Formeln der Tabelle
ZelleFormel
B1=WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;"=";"#");",";"#");";";"#");")";"#");"(";"#")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Spalteninhalte von B kopieren, in A als Werte einfügen, Hilfsspalte löschen und über Datentools==> Text in Spalten auf die einzelnen Spalten aufteilen.
Im Assistent gibst du "Getrennt" an ==> Weiter==> Häkchen setzen bei "Leerzeichen" und "Aufeinanderfolgende Trennzeichen als...". Ebenfalls bei "Andere" ein Häkchen setzen und als Trenner das Doppelkreuz angeben.
Fertigstellen.

Jetzt müsste alles so passen, wie du es dir vorstellst:

Tabelle2

ABCDEFGH
1MontagTennisTurnschuheTennisschlägerKleidungT-ShirtkurzeHose

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hier gibt es eine erweiterte Split-Funktion, die IMHO genau auf den oben geschilderten Fall passt
Antworten Top
#4
Hallo,

vielen Dank für Eure Antworten! Wie könnte die Excel Formel bzw. die Split Funktion in meinem Anwendungsfall  in ein Makro integriert werden? Ich würde gerne die Ausführung des Imports und der Aufteilung mittels Makro automatisieren.
Antworten Top
#5
Du hast Deinen Anwendungsfall nur rudimentär beschrieben und auch keine Beispieldatei geliefert, also schwierig zu sagen, wie das bei Dir integriert werden kann.
Andererseits steht doch in dem o.g. Link der vollständige Code.
Antworten Top
#6
Hi Sunny,

mit VBA-Lösungen kann ich zwar nicht dienen. Aber wie wäre es, wenn du die Schritte, die ich dir gezeigt habe, mit dem Makrorekorder aufzeichnest und den Code hier zur Verbesserung einstellst?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#7
Den aufgezeichneten Code darfst Du dann verbessern Exclamation Exclamation Exclamation

Beispieldaten/-dateien
Hier ein Beispiel, wie man eine Datei kompett in einen String einlesen kann.
Antworten Top
#8
Hallo,

ich habe die Formel nun im Makrorecorder für eine Zeile aufgezeichnet und die Ausführung des Makros (siehe unten) funktioniert für eine Zeile. Was muss ich in dem unten angegebenen Code ergänzen, dass das Makro alle in Spalte A vorhandenen Zeilen in der jeweiligen Zeile auf die Spalten aufteilt (sozusagen der Code unten nacheinander für jede vorhandene Zeile in Spalte A angewandt)?

Code:
Sub Zeile_Aufteilen()

   Range("B1").Select
   ActiveCell.FormulaR1C1 = _
       "=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RC[-1],""="",""#""),"","",""#""),"";"",""#""),"")"",""#""),""("",""#"")"
   Range("B1").Select
   Selection.Copy
   Range("C1").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Columns("A:B").Select
   Application.CutCopyMode = False
   Selection.Delete Shift:=xlToLeft
   Range("A1").Select
   Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
       Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:= _
       "#", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
       Array(6, 1), Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
End Sub
Antworten Top
#9
Ohne Beispieldatei bin ich raus
Den Makro-Rekorder Code will WillWissen ja verbessern.
Antworten Top
#10
(18.06.2017, 08:00)Storax schrieb: Den Makro-Rekorder Code will WillWissen ja verbessern.

Lieber Storax,

wer lesen kann, ist klar im Vorteil. Das habe ich geschrieben:

Zitat:mit VBA-Lösungen kann ich zwar nicht dienen.


Und auch mein Profil ist kein Geheimnis.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste