Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

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.
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
Top
#3
Hier gibt es eine erweiterte Split-Funktion, die IMHO genau auf den oben geschilderten Fall passt
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.
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.
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?
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.
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
Top
#9
Ohne Beispieldatei bin ich raus
Den Makro-Rekorder Code will WillWissen ja verbessern.
Top
#10
(18.06.2017, 09: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.
Top


Gehe zu:


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