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

Autofit aller belegter Spalten

Forumthread: Autofit aller belegter Spalten

Autofit aller belegter Spalten
26.10.2006 20:45:42
Chris
Hallo,
habe eine Makro welches einen Sheet mit ca 20 Spalten und 400 Zeilen befuellt. Am ende des Makros wuerde ich gerne ein Funktion einbauen, die alle (belegten) Spalten auf ihre richtige Groesse bringt.
ICh kann schon die Funktion EntireColumn.AutoFit verwenden und alle Spalten nacheinander angeben, aber dann ist es eben sehr statisch.
Gibt es irgendwas, welche die Autofit Funktion auf alle belegten Spalten anwendet?
Vielen Dank
Chris
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofit aller belegter Spalten
26.10.2006 21:00:51
Ali
Hi,

Sub alle()
Cells.Columns.Autofit
End Sub

mfg Ali
AW: Autofit aller belegter Spalten
26.10.2006 21:01:46
IngGi
Hallo Chris,
Rows("1:1").EntireColumn.AutoFit
wendet "AutoFit" auf alle Spalten (inklusive die nicht belegten) an. Das ist jedoch unschädlich, da bei nicht belegten Spalten die Standardbreite eingestellt wird. Anders ausgedrückt: Sie bleiben so breit, wie sie eh schon sind.
Gruss Ingolf
Anzeige
AW: Autofit aller belegter Spalten
26.10.2006 21:05:09
ingUR
Hallo, Chris,
sofern Du keine besonder Zeile hat, die die maximale Anzahl der Spalten wiedergibt, kannst Spaltenanzahl sus der UsedRange ermitteln:
ActiveSheet.UsedRange.Columns.AutoFit
alternativ, wenn Zeile 1 z.B. eine Überschriftszeile ist:
Range(Columns(1), Cells(1, Columns.Count).End(xlToLeft).Column).Autofit
Gruß,
Uwe
Anzeige
AW: Autofit aller belegter Spalten
26.10.2006 21:11:31
Chris
Jungs, ich muss sagen Respekt.
So schnell, so viele und noch dazu richtige Anworten.
Also hier wird einem wirklich geholfen.
Danke
;
Anzeige
Anzeige

Infobox / Tutorial

Autofit aller belegten Spalten in Excel VBA


Schritt-für-Schritt-Anleitung

Um alle belegten Spalten in Excel automatisch anzupassen, kannst Du den folgenden VBA-Code verwenden:

Sub AutofitBelegteSpalten()
    ActiveSheet.UsedRange.Columns.AutoFit
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul.
  3. Füge den obigen Code in das Modulfenster ein.
  4. Schließe den VBA-Editor und gehe zurück zu Excel.
  5. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Dieser Code verwendet die Methode UsedRange, um automatisch die Breite aller belegten Spalten anzupassen.


Häufige Fehler und Lösungen

  • Fehler: "Method 'AutoFit' of object 'Columns' failed"

    • Lösung: Stelle sicher, dass Du das Makro auf ein aktives Arbeitsblatt anwendest. Der Fehler kann auftreten, wenn Du versuchst, es auf ein nicht sichtbares oder geschütztes Blatt anzuwenden.
  • Problem: Alle Spalten werden angepasst, auch leere

    • Lösung: Verwende ActiveSheet.UsedRange.Columns.AutoFit, um nur die belegten Spalten anzupassen.

Alternative Methoden

Falls Du eine spezifische Range anpassen möchtest, kannst Du diese Methode verwenden:

Sub AutofitBestimmteSpalten()
    Range("A1:C1").EntireColumn.AutoFit
End Sub

Diese Methode passt nur die Spalten A bis C an. Du kannst die Range nach Bedarf ändern.


Praktische Beispiele

  1. Autofit für eine gesamte Tabelle:
Sub AutofitTabelle()
    Cells.EntireColumn.AutoFit
End Sub
  1. Autofit für alle Spalten in einer bestimmten Zeile:
Sub AutofitZeile()
    Rows("1:1").EntireColumn.AutoFit
End Sub
  1. Autofit mit spezifischen Bedingungen:
Sub AutofitMitBedingungen()
    Dim i As Long
    For i = 1 To ActiveSheet.UsedRange.Columns.Count
        If Application.WorksheetFunction.CountA(Columns(i)) > 0 Then
            Columns(i).AutoFit
        End If
    Next i
End Sub

Tipps für Profis

  • Nutze Cells.EntireColumn.AutoFit für eine schnelle Anpassung aller Spalten, aber sei vorsichtig, da dies auch leere Spalten beeinflussen kann.
  • Wenn Du häufig mit großen Datenmengen arbeitest, erwäge die Verwendung von Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit zu erhöhen.
  • Speichere Deine Makros in einer Personal.xlsb-Datei, um sie für alle Arbeitsmappen verfügbar zu machen.

FAQ: Häufige Fragen

1. Kann ich den Autofit-Befehl für nur ausgewählte Spalten verwenden?
Ja, Du kannst den Befehl auf eine spezifische Range anwenden, z. B. Range("A:C").Columns.AutoFit.

2. Welche Excel-Version wird benötigt, um VBA zu verwenden?
Die VBA-Funktionalitäten sind in allen modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

3. Was ist der Unterschied zwischen .AutoFit und .EntireColumn.AutoFit?
.AutoFit wird auf die spezifische Range angewendet, während .EntireColumn.AutoFit die gesamte Spalte anpasst, unabhängig von der selektierten Zelle.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige