Registriert seit: 07.03.2016
Version(en): 2013
17.06.2017, 19:44
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2017, 19:56 von sunny01.)
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.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
17.06.2017, 20:15
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2017, 20:15 von WillWissen.)
Hi Sunny,
mit einer Hilfsspalte würde ich es so lösen:
Tabelle2 | A | B | 1 | Montag = Tennis ((Turnschuhe, Tennisschläger, Kleidung (T-Shirt, kurze Hose)) | Montag # Tennis ##Turnschuhe# Tennisschläger# Kleidung #T-Shirt# kurze Hose## | Formeln der Tabelle | Zelle | Formel | 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 | A | B | C | D | E | F | G | H | 1 | Montag | Tennis | Turnschuhe | Tennisschläger | Kleidung | T-Shirt | kurze | Hose | 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)
Registriert seit: 25.04.2016
Version(en): 2013
Hier gibt es eine erweiterte Split-Funktion, die IMHO genau auf den oben geschilderten Fall passt
Registriert seit: 07.03.2016
Version(en): 2013
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.
Registriert seit: 25.04.2016
Version(en): 2013
17.06.2017, 20:45
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2017, 20:46 von Storax.)
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.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 25.04.2016
Version(en): 2013
17.06.2017, 20:59
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2017, 20:59 von Storax.)
Den aufgezeichneten Code darfst Du dann verbessern
Beispieldaten/-dateien
Hier ein Beispiel, wie man eine Datei kompett in einen String einlesen kann.
Registriert seit: 07.03.2016
Version(en): 2013
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
Registriert seit: 25.04.2016
Version(en): 2013
Ohne Beispieldatei bin ich raus
Den Makro-Rekorder Code will WillWissen ja verbessern.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
(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)
|