Alphabetische Reihenfolge trotz verbundener Zellen

Tach’chen.

Gerne würde ich in einer Excel-Tabelle eine alphabetische Reihenfolge
der Zellen erreichen. Leider macht Excel da zicken, weil es sich um
verbundene Zellen handelt.

Beispiel:

----------------------------------------------
 | Alter | Größe |
 B -------------------------------------
 | Tel | Fax |
----------------------------------------------
 | Alter | Größe |
 A --------------------------------------
 | Tel | Fax |
----------------------------------------------

Nach der ersten Spalte soll nun sortiert werden.
Hat jemand eine Lösungsidee?

Vielen Dank
TTR

Tach’chen.

Hallo!

Gerne würde ich in einer Excel-Tabelle eine alphabetische
Reihenfolge
der Zellen erreichen. Leider macht Excel da zicken, weil es
sich um
verbundene Zellen handelt.

geht leider nicht mit Excel-Standardfunktionen

Beispiel:


| Alter | Größe |
B -------------------------------------
| Tel | Fax |

| Alter | Größe |
A --------------------------------------
| Tel | Fax |

Nach der ersten Spalte soll nun sortiert werden.
Hat jemand eine Lösungsidee?

Mit VBA kann man den Verbund der Zellen aufheben und in jede Zelle des ehemaligen Verbundes den entsprechenden Wert übertragen.
Anschließend kann man wie gewohnt sortieren und im Anschluss wiederum mit VBA die Zellen wie vorher verbinden.
Hier die entsprechenden VBA-Prozeduren:

Sub VerbundAufheben()
Const Spalte As String = "A" 'Spalte mit verbundenen Zellen
Const ObenLinks As String = "A1" 'Linke obere Zelle des Bereichs (Kopfzelle erste Spalte)
 
Dim ErsteDatZeile As Integer
Dim VBBereich As Range
Dim VBZeilAnz As Integer
Dim zähler As Integer
Dim zeilen As Integer
 
With ActiveSheet
ErsteDatZeile = .Range(ObenLinks).Row + 1
zeilen = .Range(ObenLinks).CurrentRegion.Rows.Count - 1
For zähler = ErsteDatZeile To ErsteDatZeile + zeilen - 1
 Set VBBereich = .Range(Spalte & zähler).MergeArea
 VBZeilAnz = VBBereich.Rows.Count
 If VBZeilAnz \> 1 Then
 .Range(Spalte & zähler).UnMerge
 VBBereich.Value = .Range(Spalte & zähler).Value
 End If
 zähler = zähler + VBZeilAnz - 1
Next zähler
End With
End Sub
 
 
Sub VerbundHerstellen()
Const Spalte As String = "A" 'Spalte in der die Zellen verbunden werden sollen
Const ObenLinks As String = "A1" 'Linke obere Zelle des Bereichs(Kopfzelle erste Spalte)
Const VBZeilAnz As Integer = 3 'Anzahl der untereinanderliegenden Zellen, die verbunden werden sollen
 
Dim ErsteDatZeile As Integer
Dim VBBereich As Range
Dim zähler As Integer
Dim zeilen As Integer
 
With ActiveSheet
ErsteDatZeile = .Range(ObenLinks).Row + 1
zeilen = .Range(ObenLinks).CurrentRegion.Rows.Count - 1
For zähler = ErsteDatZeile To ErsteDatZeile + zeilen - 1 Step VBZeilAnz
 .Range(Spalte & zähler).Offset(1, 0).Resize(VBZeilAnz - 1, 1).Value = ""
 Set VBBereich = .Range(Spalte & zähler).Resize(VBZeilAnz, 1)
 VBBereich.Merge
Next zähler
End With
End Sub

Der Konstantenbereich muss evtl. noch angepasst werden

Vielen Dank
TTR

Viele Grüße, tester

Zunächst vielen Dank.

Ist mit dieser Methode auch gewährleistet, dass die Zeilen neben der vormals verbundenen Zelle in anfänglicher Reihenfolge bestehen bleiben?Also bleibt ‚Alter/Größe‘ oben und ‚Tel/Fax‘ unten?

Beispiel:


| Alter | Größe |
B -------------------------------------
| Tel | Fax |

| Alter | Größe |
A --------------------------------------
| Tel | Fax |

Vielen Dank
TTR

Zunächst vielen Dank.

Bitte.

Ist mit dieser Methode auch gewährleistet, dass die Zeilen
neben der vormals verbundenen Zelle in anfänglicher
Reihenfolge bestehen bleiben?Also bleibt ‚Alter/Größe‘ oben
und ‚Tel/Fax‘ unten?

Eigentlich ja, sofern Du nur nach der 1. Spalte sortierst.
Am besten in einer Kopie Deiner Tabelle probieren.

Gruß, tester