Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
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


Hallo Hans,
wenn ich die URLs richtig interpretiere, haben wir im Forum soeben die Zahl von 1 Million Beiträgen überschritten.
Herzlichen Glückwunsch zu dem Erfolg Deines "Babys"!
Gruß
Martin
Anzeige

Hallo zusammen!
Ich habe da als blutiger Anfänger in VBA zwei Fragen:
1.) Wie kann ich in meiner Tabelle in jeder zweiten Spalte 4 leere Spalten einfügen lassen?
2.) Dann möchte ich unter den Inhalt der ersten fünf Spalten (A-E) den Inhalt der zweiten 5 Spalten (F-J) usw. In der grö...

Guten Morgen!
Ich hätte folgendes Problem: Ich erhalte automatisiert Exceltabellen, bei denen nicht alle Zellen einer Zeile gefüllt werden, wenn dort der Inhalt einer darüberliegenden Zeile stehen sollte. Zur Weiterverarbeitung muss ich aber diese Zellen mit den dazugehörigen Werten füllen....
Anzeige

Hallo zusammen,
ich habe eine lange Liste, in der in einer Spalte Daten stehen, wo ab und zu vorangehende Nullen nötig sind (mal eine - mal 2...etc.) - und manchmal auch keine.
Wie kann ich diese Zellen formatieren, das die vorangehenden "Nullen" nicht automatisch weggelassen werden?

Hallo Excel-Profis
ich habe folgenden Code in ein Makro eingebaut:
'Drucken mit Vorschau
Application.ActivePrinter = "\\dataserv\HP LaserJet 5L AV auf Ne05:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:= _
True
Hier wird der Standard-Drucker an...

Hallo,
Ich brauche dringend Eure Hilfe. Unter https://www.herber.de/bbs/user/54533.xls findet Ihr eine Mappe, in welcher in Spalte A
1 für "Kaufen"
0 für " "
-1 für "Verkaufen"
steht. IN SPALTE B SIND BISHER NUR MANUELL ERSTELLTE BEISPIELEINTRÄGE ENTHALTEN, DAMIT ERSICHTLIC...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige