Hallo,
ich verstehe nicht ganz. Ich bräuchte mal ein ein Beispiel odr so,
Gruß
Hallo,
ich verstehe nicht ganz. Ich bräuchte mal ein ein Beispiel odr so,
Gruß
Soderla,
bitte sehr (ausgehend davon, dass ab Zeile 1 durchgehend was in der Spalte A steht)
Range(„A1“).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Rows.AutoFit
Dim Zeile As Long
For Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
If Rows(Zeile & „:“ & Zeile).RowHeight > 33 Then
Rows(Zeile & „:“ & Zeile).RowHeight = 33
End If
Next Zeile
Macht Autofit für alle Zeilen im UsedRange, durchläuft dann all diese Zeilen und reduziert die Höhe all derer, die höher sind als 33, auf 33.
Viel Erfolg,
lg
Katharina
Man müsste sich die Originalhöhe pro Zeile merken (Variable) und dann nach AutoFit mit IF oder SELECT CASE Anweisung eine Auswahl treffen:
neue Zeilenhöhe > 33 dann Zeilenhöhe = 33
sonst alte Zeilenhöhe (die gemerkt wurde).
Die Methode Autofit gibt leider nur Wahrheitswerte aus, d.h. ob die Zeilenanpassung möglich war oder nicht. Schöner wäre es natürlich, wenn diese als Rückgabewert die neue Zeilenhöhe ausgeben würde - jegliche Kombinationen mit .AutoFit scheinen also nicht möglich zu sein.
maxRowHeight habe ich nicht gefunden, nur StandardHeight als Eigenschaft des Arbeitsblattes, also ActiveSheet.StandardHeight -> Diese Eigenschaft scheint aber schreibgeschützt zu sein, ich bekam einen Fehler beim Setzen, lediglich das Auslesen z.B. über MsgBox hat funktioniert (Rückgabewert=12,75). Würde aber auch das Problem nicht lösen.
Sorry, keine elegante Lösung, aber ein möglicher Workaround…
PS: Was ist eine Ausleitung?
Fällt mir im moment nur eine Lösung mittels Macro ein:
Mit einer for-Next-Schleife durch alle Zelen durchgehen, die jeweilige Zeile selektieren, höhe auf auto setzen, dann IF Zeilenhöhe > 33 Teilenhöhe = 33
Etwas aufwendig, aber wenns denn sein soll!
Gruß Wolfram
Hallo Thomas,
eine autofit mit einer vorgegebenen max. Wert kenne ich nicht. Aber hier eine Lösung für dein Problem:
_______________________
With Sheets(1)
.Cells(1, 1).CurrentRegion.Rows.AutoFit
ro = .Cells(1, 1).CurrentRegion.Rows.Count
For i = 1 To ro
If .Rows(i).RowHeight > 33 Then .Rows(i).RowHeight = 33
Next
End With
____________________________________
Bei einen festen Zeilenbereich kannst du dir die currentregion-version sparen und einen festgelegten bereich eingeben.
Andreas