Keith hat ein Arbeitsblatt, das die Spalten A bis H verwendet. Er möchte in der Lage sein, jede Spalte um einen proportionalen Betrag zu erweitern. Wenn er zum Beispiel alle 8 Spalten auswählt, wäre es großartig, wenn er den rechten Rand der Spalte H greifen könnte, und wenn er nach rechts zieht, wären alle Spalten proportional voneinander beabstandet. Er fragt sich, ob es eine Möglichkeit gibt, diese Art der Säulenerweiterung durchzuführen.

Um besser zu verstehen, wovon Keith spricht, ist vielleicht ein Beispiel angebracht. Die normale Methode zum Anpassen der Spaltenbreite mit der Maus besteht darin, die Spalten auszuwählen und dann einen Teiler zwischen den Spaltenüberschriften nach rechts oder links zu ziehen. Angenommen, die Breite von Spalte A beträgt 5, Spalte B 10 und Spalte C 15. Wenn Sie A: C auswählen und den Teiler auf der rechten Seite der Überschrift von Spalte C auf 20 ziehen, bedeutet dies eine Erhöhung um 33% für Spalte C. Idealerweise würden sowohl Spalte A als auch Spalte B um 33% verkleinert (wie Keith es wünscht), aber stattdessen werden beide auf eine Breite von 20 eingestellt, um mit Spalte C übereinzustimmen.

Wenn Sie beim Ziehen der Maus eine Modifizierertaste (Strg, Alt oder Umschalt) gedrückt halten, hat dies keine Auswirkung. Die Spaltenbreiten sind immer noch alle gleich eingestellt. Wenn Sie versuchen, mit der rechten Maustaste zu klicken und zu ziehen, wird nur ein Kontextmenü angezeigt. Nach all den Tests, die wir durchführen konnten, gibt es keine Möglichkeit, die Spaltenbreiten in Excel, die wir entdeckt haben, proportional anzupassen.

Am einfachsten ist es vielleicht, ein Makro zu verwenden, um die Spaltenbreiten anzupassen.

Das Folgende ist ein gutes Beispiel für einen solchen Ansatz.

Sub ProportionalWidth()

Dim C As Range     Dim sRaw As String     Dim sTemp As String     Dim P As Single

sRaw = InputBox("Increase width by how what % (0 to 100)?")

P = Val(sRaw)

If P >= 0 And P <= 100 Then         P = 1 + (P / 100)

sTemp = ""

For Each C In Selection.Columns             sTemp = sTemp & "Column " & ColumnLetter(C.Column)

sTemp = sTemp & ": " & C.ColumnWidth & " ==> "

C.ColumnWidth = C.ColumnWidth * P             sTemp = sTemp & C.ColumnWidth & vbCrLf         Next C         MsgBox sTemp     Else         MsgBox "Out of range; no adjustment made"

End If End Sub
Function ColumnLetter(Col As Long) As String     Dim Arr     Arr = Split(Cells(1, Col).Address(True, False), "$")

ColumnLetter = Arr(0)

End Function

In diesem Beispiel gibt es tatsächlich zwei Makros. Die erste (ProportionalWidth) ändert die Breite der von Ihnen ausgewählten Spalten. Der zweite (ColumnLetter) wird verwendet, um eine numerische Spaltennummer in die Spaltenbuchstaben umzuwandeln. Es wird nur zum Zusammenstellen des Berichts (in sTemp) der Vor- und Nachbreiten der Spalten verwendet.

Wenn Sie Spalten auswählen und das Makro ausführen, werden Sie gefragt, um wie viel breiter Sie diese Spalten machen möchten. Geben Sie eine Zahl zwischen 0 und 100 ein, klicken Sie auf OK, und die Spalten werden um diesen Prozentsatz erweitert. Außerdem wird ein Meldungsfeld angezeigt, in dem die ursprüngliche Breite jeder Spalte und die angepasste Breite angezeigt werden.

Beachten Sie, dass dieses Makro nur Spalten erweitert. Wenn Sie damit auch Spalten proportional schmaler machen möchten, müssen Sie sie ändern, um möglicherweise negative Werte zu verarbeiten.

_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 (13429) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.