Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spaltenbreite und Höhe automatisch einstellen per VBA
#1
Hallo zusammen,

habe eine Frage ,
habe ein Makro das die Spaltenbreite automatisch einstellt, jedoch gibt es da ein kleines problem. Das Makro erweitert nur die Zellen in denen neue Zahlen bzw Werte eingegeben werden, in den Zellen in denen  der Wert automatisch ausgerechnet wird ändert er die Größe nicht.

Das Makro sollte nun auch noch die Zeilen höhe automatisch erhöhen.

Sub PasseKleineSpaltenAutomatischAn()

Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
 If IsNumeric(Zelle.Value) And Left(Zelle.Text, 1) = "#" Then
  Zelle.EntireColumn.AutoFit
 End If
Next Zelle
End Sub
Antworten Top
#2
Hi,

(06.04.2015, 13:29)wavemaster schrieb: Das Makro sollte nun auch noch die Zeilen höhe automatisch erhöhen.

hast Du das schon probiert?

Zelle.EntireRow.AutoFit
Antworten Top
#3
Hallo,

Du weißt, dass Du eine Bedingung hast, die erfüllt sein muss, damit die Breite angepasst wird?
Und wenn Du die Breite anpasst, dann könnte es keinen Sinn machen die Höhe anzupassen.

Unten ein Beispielcode, welcher zuerst die Zeilenhöhe, dann die Spaltenbreite anpasst.
Bedingung ist, dass in der Zeile bzw in der Spalte etwas steht.


Code:
Sub PasseKleineSpaltenAutomatischAn()
Dim cC As Range, zZ As Range
 With ActiveSheet.UsedRange
   For Each zZ In ActiveSheet.UsedRange.Columns
    If Application.CountA(zZ) Then
     .Rows.EntireRow.AutoFit
    End If
   Next
   For Each cC In ActiveSheet.UsedRange.Columns
    If Application.CountA(cC) Then
     .Columns.EntireColumn.AutoFit
    End If
   Next
 End With
End Sub
Gruß Atilla
Antworten Top
#4
(06.04.2015, 13:53)atilla schrieb: Hallo,

Du weißt, dass Du eine Bedingung hast, die erfüllt sein muss, damit die Breite angepasst wird?
Und wenn Du die Breite anpasst, dann könnte es keinen Sinn machen die Höhe anzupassen.

Unten ein Beispielcode, welcher zuerst die Zeilenhöhe, dann die Spaltenbreite anpasst.
Bedingung ist, dass in der Zeile bzw in der Spalte etwas steht.
Hi,
das Problem bleibt nach wievor das gleiche es ändert nur die Zellen in denen aktiv der Wert eingegeben wird , die Zellen die sich per Formel ändern bleiben gleich. Es gibt noch einige Tabellenblätter in der Mappe, also sollte es nicht nur in dem aktiven Tabellenblatt ändern.

Sorry,

vielleicht gibt es dennoch eine Lösung.
Antworten Top
#5
Es wäre interessant zu Wissen ob es noch jemanden gibt der mir helfen kann.
:s :s :s
Antworten Top
#6
Hallo,

könntest Du vielleicht eine Beispieldatei hochladen?
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste