Word-Inhalte in Excel einfügen

Hallo,

hab bis jetzt nur was mit Tabelleninhalten gefunden.
Mir geht es aber darum, losen Text à la:

Peter Hanselmann
Hanselstraße 6
67344 Hanselstadt

in Excel einzufügen, wobei jede Zeile ihre Zelle in Excel bekommt.
Da es ca. 1000 Adresseinträge sind (alle mit dem gleichen Muster, manchmal noch eine Zeile mehr, aber das kann man dann in Excel editieren), wäre es gut, dies nicht per Hand machen zu müssen.

Weiß jemand, wie das geht?

Beste Grüße
Andreas

PS: Word + Excel 2003, WinXP SP2.

Hallo Pedro,

Mir geht es aber darum, losen Text à la:

Peter Hanselmann
Hanselstraße 6
67344 Hanselstadt

in Excel einzufügen, wobei jede Zeile ihre Zelle in Excel
bekommt.

am einfachsten aus Excel heraus die Datei öffnen
dazu im Öffnen-Dialog bei Dateityp auswählen
Dann hilft dir der Textkonvertierungs-Assistent

wenn das nicht funktioniert, sind mehr Informationen notwendig.

z. Bsp.:

in welcher Form liegen die Daten vor (welche Anwendung oder was für eine Datei-Endung hat die Datei?)?

PS: Word + Excel 2003, WinXP SP2.

Da du Word mitangegeben hast, sind die Daten vermutlich in Word gespeichert? In welcher Form?

Ist eine Adresse jeweils eine Zeile in der Quelldatei?
welches Trennzeichen ist zwischen den einzelnen Angaben?

Gruß
Marion

Hallo Marion,
danke für die Antwort.
Der Text stammt aus einer Word-Datei und ist wie gesagt lose, also nicht in Tabellenformat, nur getrennt durch normale Absätze (also Trennzeichen = normale Absatzmarke in Word = Enter-Taste). Nach jeder Adresse ist eine leere Zeile.
Die Word-Datei liegt sowohl als *.doc wie auch als *.xml vor.
Beim Importieren der xml-Datei in Excel ist das Aussehen weiterhin:

Peter Hanselmann
Hanselstraße 6
67344 Hanselstadt

Dabei ist jede Zeile in einer neuen Zeile in Excel. Ich hätte aber gern, dass jede Zeile in eine neue Spalte kommt, à la:

Name…Straße…Ort
Peter…Hanselstr…Hanselort

Gibt es dafür irgendwelche Tools oder Möglichkeiten?

Gruß
Andreas

Word-Inhalte in Excel einfügen - eine Möglichkeit

Dabei ist jede Zeile in einer neuen Zeile in Excel. Ich hätte
aber gern, dass jede Zeile in eine neue Spalte kommt, à la:

Name…Straße…Ort
Peter…Hanselstr…Hanselort

Gibt es dafür irgendwelche Tools oder Möglichkeiten?

Hallo Andreas,
ja, klar *grins* - mir fallen allerdings meist umständliche Wege ein. Wie wär’s damit:
Für den Fall, dass Du nach jeder Adresse eine Leerzeile hast
Strg + h (bzw. Bearbeiten - Ersetzen), dann auf „Erweitern“ klicken und unter „Sonstiges“ für oben „Absatzmarke“ und für unten „Tabstop“ auswählen; es sollte jetzt da stehen: Suchen nach ^p, Ersetzen durch ^t. Dann nur noch auf „Alle ersetzen“ drücken und fast fertig. Anschließend die Prozedur noch mal und zwei Tabs (^t^t) durch eine Absatzmarke (^p) ersetzen.
Ohne anschließende Leerzeile fällt mir so richtig nix ein.
Aber vielleicht kannst Du mit folgendem Feature was basteln?
Wenn eine Spalte markiert und kopiert ist, kann man sie auch als Zeile einfügen, und zwar indem man zur 1. Zelle, die gefüllt werden soll, geht und dort die rechte Maustaste drückt. Dann „Inhalte einfügen“ wählen und unten „Transponieren“ aktivieren. Und schon steht das Zeug nebeneinander statt untereinander. Vielleicht nützt es ja mal was …
Gruß Verena

1 „Gefällt mir“

danke für die Antwort.
Der Text stammt aus einer Word-Datei und ist wie gesagt lose,
also nicht in Tabellenformat, nur getrennt durch normale
Absätze (also Trennzeichen = normale Absatzmarke in Word =
Enter-Taste). Nach jeder Adresse ist eine leere Zeile.
Peter Hanselmann
Hanselstraße 6
67344 Hanselstadt

Hola Andreas,
wären es immer 3 Zeilen hättest du schon eine Makro-Lösung.
Erzähl mal mehr von der 4ten Zeile, was steht da drin, wo soll die hin!?
Vielleicht mal paar Beispiele wie die 4zeiligen Adressen aussehen.
Und, ich gehe davon aus, nach dem Import hast du in Excel eine Spalte mit durch Leerzeilen getrennte 3er oder 4er Blocks, korrekt?
Gruß
Reinhard

1 „Gefällt mir“

Hallo Andreas,

Der Text stammt aus einer Word-Datei und ist wie gesagt lose,
also nicht in Tabellenformat, nur getrennt durch normale
Absätze (also Trennzeichen = normale Absatzmarke in Word =
Enter-Taste). Nach jeder Adresse ist eine leere Zeile.
Peter Hanselmann
Hanselstraße 6
67344 Hanselstadt

wären es immer 3 Zeilen hättest du schon eine Makro-Lösung.
Erzähl mal mehr von der 4ten Zeile, was steht da drin, wo soll
die hin!?
Vielleicht mal paar Beispiele wie die 4zeiligen Adressen
aussehen.
Und, ich gehe davon aus, nach dem Import hast du in Excel eine
Spalte mit durch Leerzeilen getrennte 3er oder 4er Blocks,
korrekt?

ein wenig mehr input zu den Daten wäre gut, ist aber leider nicht erfolgt

ich bin jetzt davon ausgegangen, dass Zeile 1 Namenszusätze wie Firma, Herr, … enthält, Zeile 2 jeder Adresse den Namen, Zeile 3 die Strasse, Zeile 4 den Ort mit PLZ

Wenn es Namenszusätze nicht gibt, beginnt die Adresse mit Zeile 2, Zeile 1 fehlt in diesen Fällen, das ist sicherlich besser, als wenn die Orte mal in Spalte 3 und mal in Spalte 4 stehen

Nun zur Lösung. Alle Formeln kannst du direkt in die Zellen kopieren. Viel Erfolg

Ach ja, beim Speichern den richtigen Dateityp (*.xls) einstellen
Gruß Marion

  1. *.doc Datei als *.txt speichern

  2. aus einer Excel-Mappe heraus die *.txt Datei öffnen mit Hilfe des Textkonvertierungsassistenten

  3. Tabellenblatt mit den importierten Daten in Tabelle1 umbenennen, zwei neue Zeilen und eine neue Spalte vor den Daten einfügen (danach ist Spalte A leer, Spalte B enthält die importierten Daten wobei die Zellen B1 und B2 leer sind (die Daten beginnen erst in B3)

  4. neues Blatt, falls nicht vorhanden, mit Bezeichnung Tabelle2 einfügen

  5. folgende Zelleinträge vornehmen:

Tabelle1!A1=0
Tabelle1!A2=WENN(UND(B2="";B6="");„1“*1;WENN(UND(B2="";B7="");„0“*1;A1+1))

Die Formel in Tabelle1!A2 nach unten ausfüllen

Tabelle2!A5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;1;1);"")
Tabelle2!B5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;2;1);"")
Tabelle2!C5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;3;1);"")
Tabelle2!D5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;4;1);"")

Die Formeln in Tabelle2! ebenfalls nach unten ausfüllen

  1. Mit Hilfe des Autofilters die leeren Zeilen löschen
  2. Wenn erforderlich kann nun noch der Vorname vom Nachnamen getrennt werden oder die PLZ vom Wohnort …
1 „Gefällt mir“

@Reinhard Re^4: Word-Inhalte in Excel einfügen
Hallo Reinhard,

wären es immer 3 Zeilen hättest du schon eine Makro-Lösung.

zwecks Fortbildung - wie würde denn die Makro-Lösung aussehen, wenn es immer 3 Zeilen sind? Würd mich echt freuen, wenn du mir diese Lösung schicken könntest (natürlich nur, wenn es dich nicht soviel Mühe kostet.) Hab es leider nicht mit vba hingekriegt.

Lieben Gruß
Marion

1 „Gefällt mir“

Hallo,

konnte leider jetzt erst antworten:

Die Daten sind alle in 3 Zeilen:

Peter Meier
Meierstraße 5
81247 München

Lothar Späth
Abendstraße 55
23423 Müllerhausen

Detlef D. Soost
Möchtegernstraße 47
83454 Möchtegernstadt

usw.

Wenn ich das importiere/kopiere/in Excel öffne, bekomme ich das gleiche Format:

Peter Meier
Meierstraße 5
81247 München

Lothar Späth
Abendstraße 55
23423 Müllerhausen

Detlef D. Soost
Möchtegernstraße 47
83454 Möchtegernstadt

Mit dem Unterschied, dass jede Zeile auch eine Zeile in Excel einnimmt. Ich will aber, dass jede Zeile eine Spalte einnimmt und nach jeder Leerzeile von neuem angefangen wird, in insgesamt 3 Spalten:

Peter Meier | Meierstraße 5 | 81247 München

Lothar Späth |Abendstraße 55 | 23423 Müllerhausen

Detlef D. Soost | Möchtegernstraße 47 | 83454 Möchtegernstadt

Mit den Tipps à la Ersetzen durch ^t + Ersetzen durch ^t^t hat es nur teilweise geklappt. Einige Seiten sind schön importiert worden, anderen total zerstückelt, obwohl selbes Format (übertragen) und keine Unterschiede.

Die Möglichkeit Formeln einzugeben wie zB: Tabelle2!A5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;1;1);"") entfällt auch, da ich das bei mehreren Hundert Einträgen nicht machen kann.

Wenn ich die Spalte kopiere, die ich beim Import in Excel erhalte und diese in einen Zeile kopieren will, dann kommt beim (+Transponieren) entweder „Fehlermeldung: Bereiche stimmen nicht überein“ oder die Zeile wird unendlich lang, d.h. er beginnt nach PLZ + Ort nicht eine neue Zeile. Eine Idee wie das ginge? Das wäre dann relativ einfach denke ich…

Welches Makro gibt es denn für die Dreizeiler, Reinhard? Das würde mich einmal interessieren.

Beste Grüße und vielen Dank
Andreas

Hallo Andreas,

Wenn ich das importiere/kopiere/in Excel öffne, bekomme ich
das gleiche Format:
Peter Meier
Meierstraße 5
81247 München

Lothar Späth
Abendstraße 55
23423 Müllerhausen

Detlef D. Soost
Möchtegernstraße 47
83454 Möchtegernstadt

Richtig, darauf baut meine Lösung auf

Mit dem Unterschied, dass jede Zeile auch eine Zeile in Excel
einnimmt. Ich will aber, dass jede Zeile eine Spalte
einnimmt und nach jeder Leerzeile von neuem angefangen
wird, in insgesamt 3 Spalten:
Peter Meier | Meierstraße 5 | 81247 München
Lothar Späth |Abendstraße 55 | 23423 Müllerhausen
Detlef D. Soost | Möchtegernstraße 47 | 83454 Möchtegernstadt

Genau das Ergebnis erhälst du mit den Formeln

Die Möglichkeit Formeln einzugeben wie zB:
Tabelle2!A5=WENN(Tabelle1!A5=4;INDEX(Tabelle1!B2:B5;1;1);"")
entfällt auch, da ich das bei mehreren Hundert Einträgen nicht
machen kann.

Kopiere die Formel einfach ab Gleichheitszeichen aus dem Posting und füge sie in der angegebenen Zelle ein. Das sind insgesamt 4 Kopiervorgänge für Tabelle2! und einer für Tabelle1!. Dann nach unten ausfüllen. Dazu klickt man die Zelle mit der Formel an und positioniert den Cursor auf die rechte untere Ecke der Zelle, der Cursor ändert dann sein Aussehen zu einem Kreuz, jetzt an dieser Stelle doppelt klicken (ist die schnellste Methode) oder das Kreuz mit gedrückter linker Maustaste soweit nach unten ziehen wie benötigt. Eine weitere Möglichkeit für das „Nach unten ausfüllen“ ist über das Menü mit ->Bearbeiten, ->Ausfüllen, ->Unten

PS. Du kannst sogar alle 4 Formeln in Tabelle2! gleichzeitig nach unten ausfüllen, dazu alle 4 Zellen gleichzeitig markieren, dann wie bereits beschrieben.

Das Ganze geht recht schnell. Ich denke du brauchst nicht einmal 5 min. Ich habe es einige Male getestet.

Wenn du mit dem Filter um Löschen der Leerzeilen nicht klar kommst, meld dich nochmal.

Gruß
Marion

1 „Gefällt mir“

zwecks Fortbildung - wie würde denn die Makro-Lösung aussehen,
wenn es immer 3 Zeilen sind? Würd mich echt freuen, wenn du

Hi Marion,
ist noch verbesserungswürdig, zumindest die 3 Kopierbefehle zusammenfassen als Block.
Aber das ist nicht so wichtig, wichtiger für dich ist der Einstz von „With“, damit erhält der Punkt vor „Cells“ enorme Wichtigkeit und die Benutzung von Set.
Das aktuelle Blatt muß das Blatt sein wo die Werte so stehen:
(Ist z.b. Blatt3 das aktuelle Blatt gibts Fehler 1004, naja, das Mistding lernste noch häufig genug kennen :smile:)

a1
b1
c1

a2
b2
c2

a3
b3
c3

a4
b4
c4

Option Explicit

Sub tt()
Dim lngRow As Long, lngR As Long, ws3 As Worksheet, lng3 As Long
Set ws3 = Worksheets("Tabelle3")
lngRow = IIf(Cells(Rows.Count, 1) "", Rows.Count, Cells(Rows.Count, 1).End(xlUp).Row)
With Worksheets("Tabelle1")
 For lngR = 1 To lngRow - 2 Step 4
 lng3 = lng3 + 1
 ws3.Cells(lng3, 1) = .Cells(lngR, 1)
 ws3.Cells(lng3, 2) = .Cells(lngR + 1, 1)
 ws3.Cells(lng3, 3) = .Cells(lngR + 2, 1)
 Next lngR
End With
End Sub

Lieben Gruß
Reinhard

2 „Gefällt mir“

Hallo Reinhard,

vielen Dank für den vba-code. Ist echt super von dir und hilft mir ungemein.

zwecks Fortbildung - wie würde denn die Makro-Lösung aussehen,
wenn es immer 3 Zeilen sind? Würd mich echt freuen, wenn du

Aber das ist nicht so wichtig, wichtiger für dich ist der
Einstz von „With“, damit erhält der Punkt vor „Cells“ enorme
Wichtigkeit und die Benutzung von Set.

also „with“ kürzt code ab und reduziert damit das Getipsel - gefällt mir

Das aktuelle Blatt muß das Blatt sein wo die Werte so stehen:
(Ist z.b. Blatt3 das aktuelle Blatt gibts Fehler 1004, naja,
das Mistding lernste noch häufig genug kennen :smile:)

ja, den hatte ich auch schon einige Male, scheint so’n Fehler zu sein, der für alles taugt

Option Explicit

Sub tt()
Dim lngRow As Long, lngR As Long, ws3 As Worksheet, lng3 As
Long
Set ws3 = Worksheets(„Tabelle3“)
lngRow = IIf(Cells(Rows.Count, 1) „“, Rows.Count,
Cells(Rows.Count, 1).End(xlUp).Row)
With Worksheets(„Tabelle1“)
For lngR = 1 To lngRow - 2 Step 4
lng3 = lng3 + 1
ws3.Cells(lng3, 1) = .Cells(lngR, 1)
ws3.Cells(lng3, 2) = .Cells(lngR + 1, 1)
ws3.Cells(lng3, 3) = .Cells(lngR + 2, 1)
Next lngR
End With
End Sub

Danke, sieht sooo gut aus :smile:)
hab ich verstanden - ob ich sowas in der Art auch hin krieg - mal sehen

wenn ich das richtig verstanden habe, ist IIf so etwas, wie in Excel „wenn, dann,sonst“?

da hab ich wieder was gelernt. Bin sehr zufrieden mit meinem Lehrer.

Lieben Gruß
Marion

1 „Gefällt mir“

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Stern für Reihard owT

Lieben Gruß
Marion

Hallo Marion,

also „with“ kürzt code ab und reduziert damit das Getipsel -
gefällt mir

was anfangs so scheint als müße man erstmal mehr schreiben, erweist sich im lauf der Zeit als klasse Zeitersparnis, also immer Option Explicit benutzen.
Denn man kann sich im Code blöd suchen nach einem Fehler wenn mal halt die Variable „letzteZeile“ als „letzeZeile“ geschrieben hat, man siehts einfach nicht, aber Option Explicit sieht das.

Weiterhin ist noch super, du hast eine Variable die „LetzteHausnummerimDorf“ heißt, nun, dann gib mal „let“ oder „letz“ ein und drücke Strg+Leertaste…:smile:
Ich glaube IntelliSense heißt das.

Das aktuelle Blatt muß das Blatt sein wo die Werte so stehen:
(Ist z.b. Blatt3 das aktuelle Blatt gibts Fehler 1004, naja,
das Mistding lernste noch häufig genug kennen :smile:)

ja, den hatte ich auch schon einige Male, scheint so’n Fehler
zu sein, der für alles taugt

*smile*, jepp, wegen dem habe ich die 3 Zeilen eingefügt, weil
ich auf die Schnelle mit sowas wie (nachgestellt):
.range(Cells(lngR, 1),Cells(lngR, 3).copy destination:=ws3.range(Cells(lng3, 1),Cells(lng3,3)
nicht klar kam wegen 1004, war mir dann zu stressig zu suchen wodran das liegt, geht mir aber bei „.Copy destination“ öfters so, ich habe da grundsätzlich was nicht kapiert:frowning:

wenn ich das richtig verstanden habe, ist IIf so etwas, wie in
Excel „wenn, dann,sonst“?

Tja nun, rtfm :smile: (Siehe mein Posting an Verena)

Lieben Gruß
Reinhard

Hola Don,
fürs Archiv und für Interessierte wärs schon sehr gut wenn du sagst wie du es geschafft hast.
Gruß
Reinhard

Hallo Reinhard,

Denn man kann sich im Code blöd suchen nach einem Fehler wenn
mal halt die Variable „letzteZeile“ als „letzeZeile“
geschrieben hat, man siehts einfach nicht,

die Erfahrung hab ich auch schon gemacht

aber Option Explicit sieht das.

deshalb hab ich unter Optionen, Editor überall einen Haken

Weiterhin ist noch super, du hast eine Variable die
„LetzteHausnummerimDorf“ heißt, nun, dann gib mal „let“ oder
„letz“ ein und drücke Strg+Leertaste…:smile:
Ich glaube IntelliSense heißt das.

das ist gut, werd ich mir merken und ganz sicher auch benutzen

wenn ich das richtig verstanden habe, ist IIf so etwas, wie in
Excel „wenn, dann,sonst“?

Tja nun, rtfm :smile: (Siehe mein Posting an Verena)

aus Mangel an genau diesem werd ich mich auf die Hilfe stürzen, da kann ich auch immer wieder was Interessantes finden, nur leider vergeht immer die Zeit viel zu schnell dabei

Herzlichen Dank für deine Tipps und ganz lieben Gruß
Marion *mitEinemAugeSchonImHilfeFenster*