ich habe ein kleines Problem, bei dem ich eure Hilfe gebrauchen könnte.
Ich möchte in Excel mit Hilfe von VBA die Zeilenhöhe bestimmter Zellen dynamisch - damit meine ich nach Eingabe eines Wertes - anpassen.
Eine grundsätzliche Codierung für VBA habe ich schon finden können, jedoch soll sich dieser Automatismus nur auf bestimmte Zellen meines Worksheets beschränken z.B. Bereich B2 bis Z23.
so ganz verstehe ich nicht was du mit Zeilenhoehe einer Zelle meinst…
den Zeilenabstand bei Text in der Zelle?
die Hoehe der Zelle selbst?
Vieleicht postest du mal den Code den du bisher zusammengebaut hast, und beschreibst dein Problem bitte etwas ausfuehrlicher, dann kann man dir wahrscheinlich besser helfen bzw. hilfts mir den Fuss vom Schlauch zu nehmen.
Tschau
Peter
Eine grundsätzliche Codierung für VBA habe ich schon finden
können, jedoch soll sich dieser Automatismus nur auf bestimmte
Zellen meines Worksheets beschränken z.B. Bereich B2 bis Z23.
die Anpassung der Zeilenhöhe bei Eingaben in einem bestimmten Zellbereich kannst du wie folgt realisieren.
Statt meines Makros „ZeilenhoeheAnpassen“ kannst du natürlich dein vorhandenes Makro einbauen.
Gruß
Franz
'Code unter dem Tabellenblatt in dem die Zeilenhöhe bei Eingaben angepasst werden soll
Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Count = 1 And Not Intersect(Target, Range("B2:Z23")) Is Nothing Then
Call ZeilenhoeheAnpassen(rngZeile:=Target.EntireRow, HoeheMin:=20, AbstandNach:=3)
End If
End Sub
'Code in einem allgemeinen Modul der Datei
Sub ZeilenhoeheAnpassen(rngZeile As Range, HoeheMin As Double, AbstandNach As Double)
Dim ZeilenHoehe As Double
rngZeile.AutoFit
ZeilenHoehe = rngZeile.RowHeight
Select Case ZeilenHoehe
Case Is
ich habe ein kleines Problem, bei dem ich eure Hilfe
gebrauchen könnte.
Ich möchte in Excel mit Hilfe von VBA die Zeilenhöhe
bestimmter Zellen dynamisch - damit meine ich nach Eingabe
eines Wertes - anpassen.
Eine grundsätzliche Codierung für VBA habe ich schon finden
können, jedoch soll sich dieser Automatismus nur auf bestimmte
Zellen meines Worksheets beschränken z.B. Bereich B2 bis Z23.
Kannst Du den Code zum dynamischen Anpassen mal ins Forum stellen.
Ich denke den Bereich für diese Anpassung anzupassen dürfte kein Problem sein.
das ist der Code, den ich gefunden habe.
Der bezieht sich ja aber auf das gesamte Tabellenblatt und ich wuerde den Bereich gern auf bestimmte Zellen einschraenken.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Rows.AutoFit
ActiveSheet.UsedRange.Rows.AutoFit
End Sub
ich glaube das wird so nicht funktionieren… die Groesse der Zellen ist immer nur Spalten/Zeilenweise moeglich. Unterschiedliche Zellgroessen kann man nur darstellen indem man Zellen horizontal oder vertikal verbindet.
so wie Du das machen willst, geht es wahrscheinlich nicht, weil Du Zeilen/Reihen/Rows nur als ganze Zeile/Reihe/Row in der Höhe verändern kannst.
Wenn Du diesen Bereich besonders hervorheben willst, dann über größeren/fetten/unterlegten/farbigen Text.
Frage: wenn Du die Zellen einzeln verändern willst,
was soll dann mit den Zellen rechts und links davon passieren?
So etwas geht in einer Word-Tabelle, ja. Beim (Um-)Formatieren bricht man sich dann die Finger.
Du kannst alle Formatierungen per VBA ändern:
einfach Makro-Recorder einschalten, die gewünschte formatierung verändern, und Makro-Recorder wieder ausschalten. Dann kannst Du im aufgezeichneten Makro sehen, wie das programmiert wird!
In Deinem Fall sehe ich folgende Möglichkeit:
Du nimmst die Zellen B2 bis Z23, überträgst Sie in ein leeres Blatt, läßt die Automatische Zeilenhöhe setzen,
und überträgst dann diese Zeilenhöhe als Fixe Höhe in Dein Originalblatt.
Mühsam, aber funktioniert. Aber wozu? Schließlich ist dann in den restlichen Zellen der Inhalt in einigen Zellen nicht lesbar, weil abgeschnitten!
Hallo,
Du musst Du Dich mal mit der „OnChange“-Methode für das Arbeitsblatt auseinandersetzen. Hier kann man Bereiche definieren, für die eine bestimmte VBA-Befehlsfolge Gültigkeit haben soll. Such dsbzgl. mal bei Herber.de - da findest Du sicherlich ein paar Beispiele.
Gruß,
Ptonka
sorry für die späte Rückmeldung: meines Wissens nach kann man die Zellenhöhe nur für die ganze Zeile setzen. Dies macht auch Sinn, da sich sonst ein schiefes Raster ergeben würde. Ansonsten muss man mit verbundenen Zellen arbeiten - was aber recht kompliziert wäre und auch nicht zwangsläufig das gewünschte Ergebnis bringen würde.
Die Höhe wird ansonsten über die Eigenschaft .Height der Rows-Eigenschaft gesetzt.