Adress-Text in "richtige" Datensätze überführen

Bild

Betrifft: Adress-Text in "richtige" Datensätze überführen
von: Rolfo
Geschrieben am: 14.11.2003 17:57:27

Kann mir hierbei bitte jemand helfen?

Eine aus einer Textdatei importierte einspaltige Liste mit Adressen (ca. 2000, alle Adressfelder untereinander in Spalte A, siehe unten) will ich per Makro so ordnen, dass eine Tabelle mit "richtigen" Adressdatensätzen herauskommt.

Die Zellen sehen wie folgt aus (die 12345 in A1 entspricht einer Personennummer). Dabei kann eine Adresse bis zu 7 Zeilen lang sein. Nach der letzten Adresszeile folgen immer 3 Leerzeilen bis zur nächsten Personennummer, diese ist regelmäßig durch 4 Leerzeilen von der zugehörigen (folgenden) Anrede getrennt.

Ich möchte gerne die Adressfelder (jeweils 5-8 Zellen) automatisch nebeneinander in jeweils 1 Zeile anordnen (im Bsp. also A6 zu B1, A7 zu C1, A8 zu D1 usw.). Geht das denn per Makro? Für jede Hilfe bin ich dankbar.

(Spalte A)

12345


Herr
Karl
Mustermann
Musterstraße
67890 Musterstadt

Vielen Danke für Eure Hilfe.
Rolfo

Bild


Betrifft: AW: Adress-Text in "richtige" Datensätze überführen
von: Max P
Geschrieben am: 14.11.2003 21:35:41

Hallo Rolfo

schau dier diese datei v. hans an
https://www.herber.de/bbs/user/1976.xls

Gruß Max P


Bild


Betrifft: AW: Adress-Text in "richtige" Datensätze überführen
von: Nepumuk
Geschrieben am: 14.11.2003 22:06:28

Hallo Rolfo,
so geht's:

Option Explicit
Public Sub Adressen_anordnen()
    Dim lngZeile As Long, intZeile As Long, intSpalte As Integer
    Application.ScreenUpdating = False
    intZeile = 1
    intSpalte = 2
    For lngZeile = 2 To Cells(65536, 1).End(xlUp).Row
        If IsNumeric(Cells(lngZeile, 1)) And Cells(lngZeile, 1) <> "" Then
            intSpalte = 2
            intZeile = intZeile + 1
            Cells(intZeile, 1) = Cells(lngZeile, 1)
            Cells(lngZeile, 1) = ""
        Else
            If Cells(lngZeile, 1) <> "" Then
                Cells(intZeile, intSpalte) = Cells(lngZeile, 1)
                Cells(lngZeile, 1) = ""
                intSpalte = intSpalte + 1
            End If
        End If
    Next
    Application.ScreenUpdating = True
End Sub


Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk


Bild


Betrifft: AW: Adress-Text in "richtige" Datensätze überführen
von: Rolfo
Geschrieben am: 14.11.2003 22:18:46

Hallo Max P.,

das sieht ja schon sehr gut aus, nur meine ich (fast) genau den anderen Weg herum: nicht die Zellen aus einer Zeile sollen in einem (Spalten-)Feld zusammengefasst werden, sondern eine bestimmte Anzahl von Zellen einer Spalte auf genausoviele Zellen einer Zeile "umverteilt" werden.

Manuell geht das, indem ich z.B. die (Spalten-)Zellen ab der ersten Personenziffer (12345) bis vor die nächste Personenziffer markiere und kopiere, dann in einer neuen Tabelle mit INHALTE EINFÜGEN\"Transponieren" einfüge, wieder zur Ursprungstabelle wechsle, die nächsten Zellen markiere, usw. Aber das mehr als 2000 mal...?

Diesen Vorgang würde ich gerne als Makro automatisch ablaufen lassen. Kann aber leider (noch?) kein VBA, bin aber sehr lernwillig...

Kannst Du mir da noch weiterhelfen? Wäre klasse. Vielen Dank.

Rolfo


Bild


Betrifft: AW: Adress-Text in "richtige" Datensätze überführen
von: Rolfo
Geschrieben am: 14.11.2003 22:36:59

Hallo Nepomuk,

klasse: genauso funktioniert's. Du hat mir jetzt super gut geholfen. Herzlichen Dank!!!
(Irgendwann lerne ich auch noch mal VBA – nur wie und wann?!)

Viele Grüße, Rolf


Bild

Beiträge aus den Excel-Beispielen zum Thema " Funktionen in VBA die sich auf Bereiche beziehen ."