166 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (763 Punkte)

Guten Tag, bitte um Richtigstellung vom nachstehenden code, denn ich brauche ihn laut angegebenem Bereich. (B9:P20 und Q8:T20). Das ganze soll beim öffnen der Pivot Tabelle "Zusammenfassung" ausgeführt werden. Vielen Dank

    ActiveSheet.Columns("B9:P20").AutoFit
    If ActiveSheet.Columns("B9:P20").ColumnWidth <= 9 Then    'Spaltenbreite Automatisch oder mindestens 9
    ActiveSheet.Columns("B9:P20").ColumnWidth = 9
    End If
    ActiveSheet.Range("Q8:T20").Columns.AutoFit     'Automatische Spaltenbreite

4 Antworten

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Bearbeitet von xlking

Hi Jelena,

zunächst mal: Ja, beim Aktualisieren von Pivottabellen, werden die Spaltenbreiten automatisch angepasst. Das kannst du unterbinden, indem du in den PivotTable-Optionen das entsprechende Häkchen rausnimmst. Dann bleiben die Spaltenbreiten so, wie du sie dir wünschst. Ganz ohne VBA.

Wenn du das dann doch über VBA lösen willst, dann muss dein Code richtig so lauten und gehört in das Tabellenmodul "Zusammenfassung"

Private Sub Worksheet_Activate()
    
    With ActiveSheet.Range("B9:P20").EntireColumn
      .AutoFit
      For Each cl In .Columns
        If cl.ColumnWidth < 9 Then cl.ColumnWidth = 9    'Spaltenbreite Automatisch oder mindestens 9
      Next cl
    End With
    ActiveSheet.Range("Q8:T20").EntireColumn.AutoFit     'Automatische Spaltenbreite
 
End Sub

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (763 Punkte)
Bearbeitet von jelena

Hallo Mr. K. vielen Dank, es soll nur auf den angegebenen Bereich angewandt werden die Spaltenbreiten vor und nachher haben keine Bedeutung. Bei dem angegebenen code bekomme ich die nachstehende Fehlermeldung (2 Bilder)

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
ausgewählt von mickey
 
Beste Antwort

Dann hast du Option explicit verwendet. In dem Fall musst du natürlich die Variable cl noch definieren. Mach einfach Dim cl As Range dann passt es.

Du kannst die Spaltenbreite nur für komplette Spalten anpassen. Nicht für einzelne Bereiche.

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (763 Punkte)
Hallo Mr. K. ich habe es geschafft. Danke
...