Dynamische Zeilenhöhe mit VBA

Hallo zusammen,

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.

Könnt ihr mir helfen?

Vielen Dank und liebe Grüße,

Denise

Hallo,

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

Hallo,

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.

Der Code zur bereichs angabe Lautet
range()

in deinen Fall
range(B2:Z23)

LG
Fred

Hallo Denise,

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 

Hallo zusammen,

Hallo Denise

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.

Könnt ihr mir helfen?

Vielen Dank und liebe Grüße,

Denise

MfG MwieMichel

Hallo Peter,

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

Vielen Dank,
Denise

Hallo DeC,
benutze dafür

Worksheet\_Change(ByVal Target As Range

im Parameter Target findest du die Adresse derGeänderten Zellen.

MfG
W.W.

Hallo
Das Konzept:

  1. Die Aktive Zelle ermitteln:
    Dim strActiveCell As String
    strActiveCell = ActiveCell.Address

  2. Mit der Select Case Schleife weiteres vorgehen definieren.
    Grüsse Sebastian

Hallo Denise,

da kann ich leider nicht weiterhelfen.
In Sachen VBA stehe ich selbst erst am Anfang.

Gruß Hugo

Hallo Denise,

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.

Tschau
Peter

Hallo Denise,

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.

Sorry!
Frohe Weihnachten wünscht Matthias

Hallo Denise!

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!

Gruß
Wolfram

Grüezi Denise

Ich möchte in Excel mit Hilfe von VBA die Zeilenhöhe
bestimmter Zellen dynamisch - damit meine ich nach Eingabe
eines Wertes - anpassen.

Hmmm, Excel tut dies doch in der Grund-Einstellung automatisch von selbst. Daher denke ich nicht, dass eine Programmierung notwendig sein sollte.

Wie lautet aber ansonsten dein verwendeter Code, dann liesse sich dieser vermutlich anpassen.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

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

Hallo,

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.