Andere Probleme von ExcelTips haben Möglichkeiten bereitgestellt, wie Sie die Arbeitsblätter in Ihrer Arbeitsmappe basierend auf dem Arbeitsblattnamen sortieren können. Was ist, wenn Sie die Arbeitsblätter jedoch nach einem Wert in einer bestimmten Zelle jedes Arbeitsblatts sortieren möchten? Beispielsweise verfügen Sie möglicherweise über eine Reihe von Arbeitsblättern, die dasselbe allgemeine Layout aufweisen, und Sie möchten, dass die Arbeitsblätter basierend auf dem Wert in Zelle H7 jedes Arbeitsblatts sortiert werden.

Die einzige Möglichkeit, dies zu handhaben, ist ein Makro. Das Makro muss jedes Arbeitsblatt in der Arbeitsmappe durchlaufen und dann die Schlüsselzelle in jedem nachfolgenden Arbeitsblatt überprüfen, um festzustellen, wie es mit derselben Zelle in anderen Arbeitsblättern verglichen wird. Wenn der Zellenwert kleiner als das aktuelle Arbeitsblatt ist, kann das Arbeitsblatt, das den geringeren Wert enthält, verschoben werden.

Sub SortWksByCell()

Dim i As Integer     Dim j As Integer

For i = 1 To Worksheets.Count         For j = i To Worksheets.Count             If UCase(Worksheets(j).Range("H7")) < _               UCase(Worksheets(i).Range("H7")) Then                 Worksheets(j).Move Before:=Worksheets(i)

End If         Next     Next End Sub

Beachten Sie die Verwendung der Verschieben-Methode, die die tatsächliche Bewegung der Arbeitsblätter ausführt. Die Namen der Arbeitsblätter spielen keine Rolle, nur ihre Positionierung basiert auf dem Wert in Zelle H7 jedes Arbeitsblatts.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (12448) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.

Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: