Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilenhöhe in Abhängigkeit von Textlänge

Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 16:27:02
Textlänge
Guten Tag
Ich habe bei zwei verbundenen Zellen wie folgt formatiert:
- Textausrichtung --> Blocksatz
- Textsteuerung: Zeilenumbruch
Diese verbundenen Zellen (hier B20:C20) sind mit dem Namen "Beurteilung1" benannt. Der Inhalt wird durch eine Formel gesteuert. Als Ergebnis steht dort ein Text der zwei oder drei Zeilen beansprucht. Wohl wegen der Zellverbindung (auf die hier nicht verzichtet werden kann) erfolgt die Anpassung der Zeilenhöhe nicht automatisch, auch wenn "optimale Höhe" definiert ist.
Nun möchte ich die Zeilenhöhen-Anpassung mittels eines Ereignismakros steuern und zwar soll die Zeilenhöhe 27.75 betragen, wenn die Textlänge des Ranges "Beurteilung1" kürzer als 200 Zeichen ist, ansonsten soll die Zeilenhöhe 42 betragen.
Wie fange ich die Änderung der Auswertung des Ranges "Beurteilung1" mit einem Ereignismakro am besten ab? In Wirklichkeit muss ich zwei solche Bereiche, also "Beuteilung1" und "Beurteilung2" auswerten. Kann dies im gleichen Ereignismakro geschehen?
Danke für eine Antwort.
Gruss, Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 16:46:00
Textlänge
Hallo,
so müsste es gehen.
Kommt las Code ins entsprechende Tabellenblatt.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_Calculate() 
    With Application 
     .ScreenUpdating = False 
          With Range("Beurteilung1") 
             If Len(.Value) < 200 Then 
               .RowHeight = 27.75 
             Else 
               .RowHeight = 42 
             End If 
          End With 
     .ScreenUpdating = True 
    End With 
End Sub 
 


Gruß Tino

Anzeige
AW: Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 17:23:11
Textlänge
Hallo Tino
Das klappt so prima. Da ich mehrere Bereiche steuern muss, die in verschiedenen Tabellen drin sind, habe ich Worbkbook_SheetCalculate verwendet.
Danke und freundlicher Gruss, Peter

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
With Application
.ScreenUpdating = False
With Range("Beurteilung1")
If Len(.Value) 


AW: Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 17:01:30
Textlänge
Hallo Peter
Userbild


https://www.herber.de/bbs/user/55994.xls
Gruß Matthias
Anzeige
AW: Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 17:09:59
Textlänge
Der folgende Code macht einen Autofit von verbundenen Zellen. Funktioniert meistens, allerdings hatte ich auch schon Fälle, wo es um eine Zeile danebenlag (frag mich nicht wieso, der Fehler durch die Ränder wird eigentlich berücksichtigt).

' Autofit von verbundenen Zellen
Public Sub instantFitHeight()
Dim tempWidth As Double
Dim zeLLe As Range
Dim totalWidth As Double
Dim totalPxWidth As Double
Dim myCells As Range
Dim tempHeight As Double
Dim oldHeight As Double
Application.ScreenUpdating = False
On Error GoTo fitErr
Set myCells = Selection
With myCells
' Macht nur etwas für einzelne Zeile und wenn die Zelle verbunden sind
If .Rows.Count = 1 And (.WrapText = True Or IsNull(.WrapText)) Then
' Speichert alte Zeilehöhe zwischen
oldHeight = .RowHeight
' Speichert die Breite der ersten Zelle zwischen
tempWidth = .Cells(1).ColumnWidth
' Berechnet die Gesamtbreite der verbundenen Zellen
For Each zeLLe In myCells
totalWidth = zeLLe.ColumnWidth + totalWidth
totalPxWidth = zeLLe.Width + totalPxWidth
Next
' Löst den Verbund auf
.MergeCells = False
' weist der ersten Zelle (dort steht der Text) die Gesamtbreite zu
.Cells(1).ColumnWidth = totalWidth
' Breitenkorrektur auf Breite in Pixel
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth + (totalPxWidth - .Cells(1).Width) / ( _
.Cells(1).Width - .Cells(2).Width) * (.Cells(1).ColumnWidth - .Cells(2).ColumnWidth)
' Führt Autofit durch
.EntireRow.AutoFit
' Speichert die Höhe zwischen
tempHeight = .RowHeight
' Weist der ersten zelle wieder die alte Breite zu
.Cells(1).ColumnWidth = tempWidth
' Verbindet die Zellen wieder
.MergeCells = True
' Weist Höhe zu (geht beim Verbinden wieder verloren)
.RowHeight = tempHeight
End If
End With
On Error GoTo 0
Application.ScreenUpdating = True
Exit Sub
fitErr:
On Error Resume Next
' Weist der ersten zelle wieder die alte Breite zu
myCells.Cells(1).ColumnWidth = tempWidth
' Verbindet die Zellen wieder
myCells.MergeCells = True
' Weist alte Höhe wieder zu
myCells.RowHeight = oldHeight
On Error GoTo 0
Application.ScreenUpdating = True
End Sub


Gruss, Jogy

Anzeige
AW: Zeilenhöhe in Abhängigkeit von Textlänge
13.10.2008 17:43:19
Textlänge
Hallo Jogy
Vielen Dank für die Antwort.
Da ich für mein aktuelles Problem eine Lösung habe, werde ich gerne bei anderer Gelegenheit darauf zurückgreifen.
Gruss, Peter

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige