Zellen sortieren und verschmelzen

Bild

Betrifft: Zellen sortieren und verschmelzen
von: Marlene
Geschrieben am: 05.04.2005 20:25:28
Liebes Forum!
Mein Excel-File hat etwa 2000 Zeilen die allesamt so oder so ähnlich aussehen:
Spalte1 ...........Spalte 2 . ..Spalte3.....Spalte4.....spalte 5 ..... spalte6
Unternehmen...Namen..... Kürzel......GesbmH......Postleitzahl...Ort
Ich hätte nun gern Spalte 1 bis 4 in einer einzige Spalte - und Spalte 5 bis 6 in einer anderen.
Erschwerend kommt hinzu, daß manchmal in Spalte 5 und 6 ebenfalls Unternehmensdaten stehen und die Postleitzahl dann in Spalte 7 vorhanden ist.
Manchmal beginnt die bereits Postleitzahl schon in Spalte 3.
Ich denken mir, man könnte sagen:
for i=1 to 100
Schreibe Spalte i in Spalte 1
i=i+1
until Spalte i ist Zahl

for j=1 to 100
if spalte j = Zahl then write in Spalte 2
j=j+1
until spalte j= leer
Ich hoffe Ihr könnt mir bei meinem Problem helfen.
lg Marlene

Bild

Betrifft: AW: Zellen sortieren und verschmelzen
von: Josef Ehrensberger
Geschrieben am: 05.04.2005 21:18:13
Hallo Marlene!
Wenn ich dich richtig verstanden habe, dann z.b. so!

Sub TrennenBeiPLZ()
Dim lRow As Long, lastRow As Long
Dim iCol As Integer, lastCol As Integer, n As Integer
Dim tr As String
tr = ", "   'Trennzeichen zwischenden Einträgen
lastRow = Range("A65536").End(xlUp).Row
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
   For lRow = 2 To lastRow
   lastCol = Cells(lRow, 256).End(xlToLeft).Column
      For iCol = 1 To lastCol
         If IsNumeric(Cells(lRow, iCol)) Then
            For n = 2 To iCol - 1
               Cells(lRow, 1) = Cells(lRow, 1) & tr & Cells(lRow, n)
            Next
               Cells(lRow, 2) = Cells(lRow, iCol)
            For n = iCol + 1 To lastCol
               Cells(lRow, 2) = Cells(lRow, 2) & tr & Cells(lRow, n)
            Next
            Range(Cells(lRow, 3), Cells(lRow, lastCol)).ClearContents
            Exit For
         End If
      Next
   Next
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: Zellen sortieren und verschmelzen
von: Marlene
Geschrieben am: 06.04.2005 08:33:36
Hallo Sepp!
Super - Vielen Dank es hat sehr gut funktioniert.
Einzig wenn nur eine Postleitzahl in der Zeile Steht so kommt diese nicht in Spalte 2.
Ich hätte eine Bitte: Könntest Du mir bitte kurz die einzelnen Zeilen im Makro erklären? Wahrscheinlich kommen noch Zellen für Straße Haus- und Telephonnummer hinzu und ich wills dann selbser schaffen.
lg Marlene
Bild

Betrifft: AW: Zellen sortieren und verschmelzen
von: Josef Ehrensberger
Geschrieben am: 06.04.2005 21:40:45
Hallo Marlene!
Hier nochmal mit Kommentar!

Sub TrennenBeiPLZ()
Dim lRow As Long, lastRow As Long
Dim iCol As Integer, lastCol As Integer, n As Integer
Dim tr As String
tr = ", "   'Trennzeichen zwischenden Einträgen
lastRow = Range("A65536").End(xlUp).Row
'letzte gefüllte Zeile in Spalte "A" ermitteln
On Error GoTo ERRORHANDLER
With Application                    'Ausschalten von ...
.ScreenUpdating = False             'Bildschirmaktualisierung
.EnableEvents = False               'Ereignisse
.Calculation = xlCalculationManual  'Berechnung
End With
   For lRow = 2 To lastRow 'Zeilen von 2 bis "letzte Zeile" durchlaufen
   lastCol = Cells(lRow, 256).End(xlToLeft).Column
   'letzte Spalte der Zeile ermitteln
      For iCol = 1 To lastCol 'Zellen von 1 bis "letzte Spalte"
         If IsNumeric(Cells(lRow, iCol)) Then
         'wenn der Eintrag in Zelle "IsNueric"
            For n = 2 To iCol - 1
               Cells(lRow, 1) = Cells(lRow, 1) & tr & Cells(lRow, n)
               'Zellen bis zur Nummer in Spalte "A" zusammenfassen
            Next
               Cells(lRow, 2) = Cells(lRow, iCol)
            For n = iCol + 1 To lastCol
               Cells(lRow, 2) = Cells(lRow, 2) & tr & Cells(lRow, n)
               'Zellen von der Nummer bis zur letzten Spalte in "B" zusammenfassen
            Next
            Range(Cells(lRow, 3), Cells(lRow, lastCol)).ClearContents
            'Zellen von "C" bis "letzte Spalte" leeren
            Exit For 'Schleife verlassen
         End If
      Next
   Next
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: Zellen sortieren und verschmelzen
von: Marlene
Geschrieben am: 07.04.2005 22:48:11
Super, vielen vielen Dank!
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen sortieren und verschmelzen"