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 untersuchen, um festzustellen, wie es 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 (2890) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: