Microsoft Excel

Herbers Excel/VBA-Archiv

Spaltenbreite automatisch und immer anpassen

Betrifft: Spaltenbreite automatisch und immer anpassen von: Psy
Geschrieben am: 21.11.2014 08:06:55

Hi zusammen,

sitz hier gerade vor einem kleinen Problem. Einen Teil der Lösung konnte ich im Netz finden, doch irgendwie komme ich mit der Syntax nicht klar.

Mein Ziel ist es, dass ein Makro durchgehen ausgeführt wird. Dies erreiche ich mit folgendem Code.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)Code

End Sub
Nun geht es mir darum, dass wenn etwas in eine zelle geschrieben wird, dass sich die Spaltenbreite automatisch anpasst.
Im Beispiel:
In Zelle A16 wird eine Benennung eingegeben, die größer ist, als die Spaltenbreite. Dann soll sich die Spalte automatisch anpassen. Wenn der Inhalt der Zelle wieder entfernt wird, dann soll sich die Spaltenbreite wieder automatisch anpassen. Mit jeder Eingabe. Zur Spaltenbreite habe ich folgende Syntax gefunden.
Columns("A:A").EntireColumn.AutoFit
Nur wie müsste der Code aussehen, damit der code ständig ausgeführt wird?

Über jegliche Hilfe bin ich sehr dankbar.

Gruß

  

Betrifft: AW: Spaltenbreite automatisch und immer anpassen von: Luschi
Geschrieben am: 21.11.2014 08:27:06

Hallo Psy,

versuch es mal so, wenn es in 1er bestimmten Tabelle passieren soll:


Private Sub Worksheet_Change(ByVal Target As Range)
    Target.EntireColumn.AutoFit
End Sub
Wenn es in allen Tabellen 1er Arbeitsmappe sein soll, dann so im Klassenmodul 'DieseArbeitsmappe':

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Target.EntireColumn.AutoFit
End Sub
Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Spaltenbreite automatisch und immer anpassen von: psy
Geschrieben am: 24.11.2014 10:26:57

Hi Luschi,

interessanter Nick.

Anbei meine Rueckmeldung. Passt soweit alles. Habe es noch ein wenig erweitert.

Habe nun noch die Problematik mit dem Blattschutz eingefügt. Anbei mal meine komplette Syntax falls dies noch jemand braucht.

  • Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
    Worksheets("BliBlaBlub").Protect Password:="Mein Passwort", UserInterfaceOnly:=True
    Worksheets("BlabBliBlab").Protect Password:="Mein Passwort", UserInterfaceOnly:=True
        
        'Anpassung 
        Target.EntireColumn.AutoFit
        'Zur Berechnung einer Formel und die automatische Anpassung an die Zahlengröße
        Sheets(1).Columns("AA:AE").AutoFit
        'Zur Berechnung einer Formel und die automatische Anpassung an die Zahlengröße
        Sheets(2).Columns("Q:R").AutoFit
       
    End Sub



  • Danke für die Unterstützung Luschi :)

    Gruß


     

    Beiträge aus den Excel-Beispielen zum Thema "Spaltenbreite automatisch und immer anpassen"