Adressen aus Textdatei importieren

Hallo,

ich habe Adressdaten in einer Textdatei, die alle nach folgendem Muster untereinander stehen:

A1
B1
C1
D1
E1
F1

A2
B2
D2
E2
F2

A3
D3
E3
F3

Dabei kann es eben sein, dass bei manchen Adressen alle Zeilen (A-F) vorkommen, bei manchen fehlt B, bei manchen B&C,…

Diese Daten hätte ich nun gern ins Excel importiert, aber so, dass die Daten dann jeweils in Spalten nebeneinander stehen.
A1 | B1 | C1 | D1 | E1 | F1
A2 | B2 | | D2 | E2 | F2
A3 | | | D3 | E3 | F3

Ich hab schon versucht, die Zeilenumbrüche durch Semikolons zu ersetzen und das dann zu importieren. Aber leider ersetzt es mir dann die Zeilen zwischen den einzelnen Einträgen durch zwei Semikolons so dass Excel nicht klar ist, dass dies ein neuer Eintrag sein soll.
Außerdem wird dadurch das Problem der teilweise fehlenden Zeilen nicht erkannt.

Ich bin dankbar für jedweden Hinweis.
Vielen Dank dafür im Voraus.

Viele Grüße,
Simon

Hallo Simon,

Ich hab schon versucht, die Zeilenumbrüche durch Semikolons zu
ersetzen und das dann zu importieren. Aber leider ersetzt es
mir dann die Zeilen zwischen den einzelnen Einträgen durch
zwei Semikolons so dass Excel nicht klar ist, dass dies ein
neuer Eintrag sein soll.

Das ist einfach:

  • Ersetze doppelte Zeilenumbrüche durch „wurstbrot“
  • Ersetze alle Zeilenumbrüche durch Semikolon
  • Ersetze alle „wurstbrot“ durch Zeilenumbrüche

Außerdem wird dadurch das Problem der teilweise fehlenden
Zeilen nicht erkannt.

Das ist nicht so einfach. Könntest du mal einen konkreten Datensatz posten?

Cheers, Felix

Hallo Simon.

Als ersten Schritt würde ich vorschlagen, die aufeinanderfolgenden Zeilenumbrüche zu eleminieren. Ersetze die 2 aufeinanderfolgenden Zeilenumbrüche durch ein Zeichen, dass nicht in deiner Adressliste vorkommt und keine Wildcardsuche ist (z.B. § oder %). Das ersetzen klappt (relativ) gut in Word.
Der zweite schritt ist manuelle Arbeit - meiner Meinung nach leider nicht zu vermeiden. Du musst alle Adressen auf das gleiche Format bringen - also auf die gleiche Feldanzahl. Das kannst du mit einfachen Zeilenumbrüchen tun. Ab deinem 2. Beispiel also:

A2
B2

D2
E2
F2
%
A3

D3
E3
F3

Jetzt heißt es die Felder trennen -> Zeilenumbrüche durch Semikolon ersetzen lassen. Anschließend noch die Datensätze trennen -> Hilfszeichen durch Zeilenumbruch ersetzen lassen.
Wenn ich keinen groben Denkfehler gemacht habe, sollte es so funktionieren.

Grüße
Joshua

Hallo Felix,

vielen Dank schonmal für die Hilfe.

Das ist nicht so einfach. Könntest du mal einen konkreten
Datensatz posten?

Meine Daten sehen beispielsweise so aus:

„Stiftung Maria-Stehmann-Haus“ in Braunschweig
Evangelische Stiftung Neuerkerode
-Direktion-
Kastanienweg 3
38173 Sickte-Neuerkerode
http://www.neuerkerode.de

Alfred und Cläre Pott-Stiftung
DSZ - Deutsches Stiftungszentrum
Barkhovenallee 1
45239 Essen
http://www.stifterverband.de

Amalie Sieveking-Stiftung
Stiftstraße 65
20099 Hamburg
http://www.sieveking-stiftung.de

Was jeder Datensatz gemein hat, sind „Name“, Straße, PLZ+Ort sowie die URL.
Hoffe, das hilft weiter.

Cheers, Felix

Besten Dank und viele Grüße,
Simon

Hallo Joshua,

besten Dank für die Tipps.

Als ersten Schritt würde ich vorschlagen, die
aufeinanderfolgenden Zeilenumbrüche zu eleminieren. Ersetze
die 2 aufeinanderfolgenden Zeilenumbrüche durch ein Zeichen,
dass nicht in deiner Adressliste vorkommt und keine
Wildcardsuche ist (z.B. § oder %). Das ersetzen klappt
(relativ) gut in Word.

Hat wunderbar funktioniert.

Der zweite schritt ist manuelle Arbeit - meiner Meinung nach
leider nicht zu vermeiden. Du musst alle Adressen auf das
gleiche Format bringen - also auf die gleiche Feldanzahl. Das
kannst du mit einfachen Zeilenumbrüchen tun. Ab deinem 2.
Beispiel also:

A2
B2

D2
E2
F2
%
A3

D3
E3
F3

Das hab ich jetzt noch nicht ausprobiert, da ich immernoch hoffe, dass es einen anderen Weg gibt - aber ganz ehrlich glaube ich auch nicht daran.

Jetzt heißt es die Felder trennen -> Zeilenumbrüche durch
Semikolon ersetzen lassen. Anschließend noch die Datensätze
trennen -> Hilfszeichen durch Zeilenumbruch ersetzen
lassen.
Wenn ich keinen groben Denkfehler gemacht habe, sollte es so
funktionieren.

Hat auch wunderbar geklappt.

Grüße
Joshua

Viele Grüße
Simon

„Stiftung Maria-Stehmann-Haus“ in Braunschweig
Evangelische Stiftung Neuerkerode
-Direktion-
Kastanienweg 3
38173 Sickte-Neuerkerode
http://www.neuerkerode.de

Alfred und Cläre Pott-Stiftung
DSZ - Deutsches Stiftungszentrum
Barkhovenallee 1
45239 Essen
http://www.stifterverband.de

Amalie Sieveking-Stiftung
Stiftstraße 65
20099 Hamburg
http://www.sieveking-stiftung.de

Was jeder Datensatz gemein hat, sind „Name“, Straße, PLZ+Ort
sowie die URL.

Hi Simon,
probier mal dieses Makro, habe ich grad so runtergeschrieben, ist sicher noch zu kürzen. Das Makro erwartet exakt eine Leerzeile zwischen den Adressblöcken.

Option Explicit
'
Sub Einlesen()
Dim Z, S(), Zei As Long, Spa As Byte, Satz
Close
Open "C:\test2.txt" For Input As #1
While Not EOF(1)
 Line Input #1, Satz
 If Satz "" Then
 Z = Z + 1
 ReDim Preserve S(Z)
 S(Z) = Satz
 Else
 Zei = Zei + 1
 Z = 0
 ReDim Preserve S(6)
 If S(5) = "" Then
 S(6) = S(4)
 S(5) = S(3)
 S(4) = S(2)
 S(3) = ""
 S(2) = ""
 ElseIf S(6) = "" Then
 S(6) = S(5)
 S(5) = S(4)
 S(4) = S(3)
 S(3) = ""
 End If
 For Spa = 1 To 6
 Cells(Zei, Spa) = S(Spa)
 Next Spa
 End If
Wend
Close #1
 Zei = Zei + 1
 Z = 0
 ReDim Preserve S(6)
 If S(5) = "" Then
 S(6) = S(4)
 S(5) = S(3)
 S(4) = S(2)
 S(3) = ""
 S(2) = ""
 ElseIf S(6) = "" Then
 S(6) = S(5)
 S(5) = S(4)
 S(4) = S(3)
 S(3) = ""
 End If
 For Spa = 1 To 6
 Cells(Zei, Spa) = S(Spa)
 Next Spa
End Sub

Gruß
Reinhard

Guten Morgen Reinhard,

Hi Simon,
probier mal dieses Makro, habe ich grad so runtergeschrieben,
ist sicher noch zu kürzen. Das Makro erwartet exakt eine
Leerzeile zwischen den Adressblöcken.

Vielen Dank für das Makro. Ich hab es einfach mal drüberlaufen lassen und es passt alles perfekt! Da ich mich mit Makros nicht auskenne, werde ich es auch nicht kürzen können :wink:

Vielen Dank dir und allen die sich Gedanken gemacht haben.

Viele Grüße,
Simon