Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Spaltenbreite der markierten Zelle anpassen

Forumthread: Spaltenbreite der markierten Zelle anpassen

Spaltenbreite der markierten Zelle anpassen
04.03.2026 01:01:49
derGlowka
Hallo Miteinander,
ich bin nach längerer Zeit wieder mal "gezwungen" mich intensiver mit Excel zu beschäftigen und habe da eine Frage, bei der ich als mittfünfziger grad mal auf dem Schlauch stehe.
Mein ziel ist es, das eine Zelle, wenn ich sie mit der Maus anklicke, die Breite entsprechend des Inhalts annimmt.

Hab jetz mal sowas versucht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Cells.EntireColumn.AutoFit

End Sub


Wenn ich eine andere Zelle anklicke soll eben die Spalte nach deren Inhalt expandieren und die vorherige wieder auf eine Standardbreite "schrumpfen".
Mit oben Code wird die Funktion auf alle Zellen angewendet. Wie muss ich das machen, dass es nur für eine einzelne Zelle/Spalte funktioniert? Geht das über Schleifen?


Sorry für die vielleicht dumme Frage, aber ich hatte schon paar Jahre nix mehr mit VBA zu tun...



Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbreite der markierten Zelle anpassen
04.03.2026 04:25:43
Onur
CELLS bedeutet nun mal ALLE.
Wenn schon, dann TARGET.
AW: für onur richtig platziert ;-)
04.03.2026 10:43:22
schauan
Hallöchen,

Wenn ich eine andere Zelle anklicke soll eben die Spalte nach deren Inhalt expandieren und die vorherige wieder auf eine Standardbreite "schrumpfen".

3 Sachen dazu

1) Selection können mehrere Spalten betreffen, schlimmstenfalls hast Du eine komplette Zeile markiert oder das ganze Blatt ... Du müsstest das prüfen und danach entscheiden, was zu tun ist

2) welches ist die vorherige? Wenn es wirklich nur die vorherige sein soll, müsstest Du Dir bzw. Excel sich merken, welche das war. Zum Merken könntest Du z.B. beim Öffnen das Blatt aktivieren und die Spalte der aktiven Zelle ermitteln usw. Ansonsten reicht ein Bezug auf Cells.

3) Du kannst entsprechend Excel - "Standard" eine fixe Breite nehmen:
ActiveSheet.Cells.ColumnWidth = 10.71
Sollte sich der Standard mal ändern oder warum auch immer müsstest Du die 10.71. anpassen.
Könnte sein, dass Du eine "eigene" Standardbreite hast - Du schreibst ja "eine Standardbreite" und nicht "die Standardbreite" bzw. "die Excel-Standardbreite"
Ansonsten - um bei der Excel-Standardbreite ganz sicher zu gehen - z.B. neues Blatt einfügen und dort die Spaltenbreite abgreifen, dann das neue Blatt wieder löschen.
Anzeige
AW: Spaltenbreite der markierten Zelle anpassen
04.03.2026 11:08:16
GerdL
Moin,

noch ein Spielzeug.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


Static oldC As Range

On Error GoTo fin
Application.EnableEvents = False

With Target
If Not oldC Is Nothing Then
If oldC.Column > .Column Then
oldC.ColumnWidth = Me.StandardWidth
End If
End If
.EntireColumn.AutoFit
Set oldC = .EntireColumn
End With

fin:
Application.EnableEvents = True

End Sub


Gruß Gerd
Anzeige
AW: Spaltenbreite der markierten Zelle anpassen
04.03.2026 19:34:26
derGlowka
Danke Euch allen für die Hilfe und den Input.
Ich werd mir die Codebeispiele mal näher anschauen und versuchen zu verstehen wie das alles zusammenspielt.
Ist halt wie gesagt schon ein paar viele Jahre her, dass ich mit VBA in Excel was machen musste.
Aber ich schau mal...

Liebe Grüße,
Markus
Anzeige
AW: Spaltenbreite der markierten Zelle anpassen
04.03.2026 07:58:29
thepinky
Hallo derGlowka,

schau mal ob folgender Code den Anforderungen entspricht.



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo SafeExit
Application.EnableEvents = False

Dim ws As Worksheet
Set ws = Me

Dim col As Long
col = Target(1, 1).Column


Static prevCol As Long
If prevCol = col Then GoTo SafeExit
prevCol = col


ws.Cells.ColumnWidth = ws.StandardWidth


ws.Columns(col).AutoFit

SafeExit:
Application.EnableEvents = True
End Sub

Anzeige
AW: Spaltenbreite der markierten Zelle anpassen
04.03.2026 10:42:04
schauan
Hallöchen,

Wenn ich eine andere Zelle anklicke soll eben die Spalte nach deren Inhalt expandieren und die vorherige wieder auf eine Standardbreite "schrumpfen".

3 Sachen dazu

1) Selection können mehrere Spalten betreffen, schlimmstenfalls hast Du eine komplette Zeile markiert oder das ganze Blatt ... Du müsstest das prüfen und danach entscheiden, was zu tun ist

2) welches ist die vorherige? Wenn es wirklich nur die vorherige sein soll, müsstest Du Dir bzw. Excel sich merken, welche das war. Zum Merken könntest Du z.B. beim Öffnen das Blatt aktivieren und die Spalte der aktiven Zelle ermitteln usw. Ansonsten reicht ein Bezug auf Cells.

3) Du kannst entsprechend Excel - "Standard" eine fixe Breite nehmen:
ActiveSheet.Cells.ColumnWidth = 10.71
Sollte sich der Standard mal ändern oder warum auch immer müsstest Du die 10.71. anpassen.
Könnte sein, dass Du eine "eigene" Standardbreite hast - Du schreibst ja "eine Standardbreite" und nicht "die Standardbreite" bzw. "die Excel-Standardbreite"
Ansonsten - um bei der Excel-Standardbreite ganz sicher zu gehen - z.B. neues Blatt einfügen und dort die Spaltenbreite abgreifen, dann das neue Blatt wieder löschen.

Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18