Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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

Text mit Zeilenumbrüchen in verbundener Zelle

Text mit Zeilenumbrüchen in verbundener Zelle
JensF
Hallo Leute,
ich habe längere texte in verbundenen Zellen. Die Zelle erlaubt Zeilenumbrüche.
Wenn ich nun die optimale Zeilenhöhe einstellen will reduziert Excel die Höhe auf eine Zeile.
Das pasiert nur wegen der blöden verbunenden Zelle.
Gibt es einen Trick mit dem dieser Bug zu umgehen ist?
Viele Grüße
Jens

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Text mit Zeilenumbrüchen in verbundener Zelle
28.02.2011 13:39:04
ing.grohn
Hallo Jens,
ich glaube nicht, daß das ein Bug ist. War in 2003 auch schon so. Mit Hilfe aus dem Forum hab ich das so gelöst (gilt ab Zeile 20 und Spalte C):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoehe As Double
On Error GoTo ErrorHandler
Application.EnableEvents = False
With Target
If .Row > 20 And .Row 

Hier folgt die Funktion "ZeilenHoehe":
Function Zeilenhoehe(wks As Worksheet, Zeile As Long, Spalte_A As Long, Spalte_E As Long) As  _
Double
'Ermittelt die Zeilenhöhe für zu verbindende Zellen bei überlangem Text und _
formatiert die Zellen
'Spalte_A = 1. SPalte der ggf. zu verbindenende Zellen
'SPalte_E = letzte Spalte der ggf. zu verbindenden Zellen
Dim MinHoehe As Double, bolMerge As Boolean, lngHAlihnment As Long, dblHoehe As Double
Application.ScreenUpdating = False
With wks
'Zellbereich formatieren ohne Zeilenumbruch und Linksbündig formatieren, MinHoehe  _
ermitteln
With .Range(.Cells(Zeile, Spalte_A), .Cells(Zeile, Spalte_E))
.HorizontalAlignment = xlHAlignLeft
.WrapText = False
If .MergeCells = True Then .UnMerge
With .EntireRow
.AutoFit
MinHoehe = .RowHeight
End With
'Format auf über Spalten centrieren setzen und Optimale Zeilenhoehe
.WrapText = True
.HorizontalAlignment = xlCenterAcrossSelection
.EntireRow.AutoFit
'Zellen Formatieren
If MinHoehe 

Vielleicht kannst Du das auf die Bedürfnisse abstellen.
Mit freundlichen Grüßen
Albrecht
(schade, ich weiß nicht mehr, wer mir da geholfen hat, nochmal vielen Dank dafür)
Anzeige
das hilft leider nicht
28.02.2011 14:20:00
JensF
Hi,
vielen Dank aber das hilft mir leider nicht. Das Makro unmerged die Zelle und ermittelt dann die optimale Höhe der einzelnen Zelle. Diese ist aber viel schmaler als der vorherige Zellverbund. Ich möchte aber die vorherige Breite nutzen, sonst hätte ich die Zellen ja nicht verbinden müssen.
Grüße
Jens
p.s.
("Ich glaube nicht dass es ein Bug ist, weil es in 2003 auch schon so war". Da musste ich schmunzeln. ;-))
AW: das hilft leider nicht oder doch?
28.02.2011 14:34:06
ing.grohn
Hallo Jans,
ich melde mich noch mal, weil ich denke, daß bei mir die Zellen nach wie vor verbunden sind.
Das war ja auch mein Problem, daß Excel nicht in der Lage ist einen Zeilenumbruch (mit entsprechender Zeilenhöhe) vernüftig hin zu bekommen.
Schau mal auf das Bild:
Userbild
Mit freundlichen Grüßen
Albrecht
Anzeige
AW: Text mit Zeilenumbrüchen in verbundener Zelle
28.02.2011 14:48:23
Rudi
Hallo,
ich hab das mal so gelöst:
Ich habe eine ausgeblendete Tabelle eingefügt und dort eine Spalte so breit wie die verbundenen Spalten gemacht + Zeilenumbruch. Dann per VBA den Text aus den verbundenen Zellen dort eingefügt, Autofit auf die Zeile und die Höhe der verbundenen entsprechend gesetzt.
Umständlich aber geht.
Gruß
Rudi
AW: Text mit Zeilenumbrüchen in verbundener Zelle
28.02.2011 15:08:48
JensF
Hi Rudi,
ja, das ist ein eleganter Workaround. Vielen Dank.
grüße
Jens
AW: Text mit Zeilenumbrüchen in verbundener Zelle
28.02.2011 16:01:00
ing.grohn
Hallo Rudi,
nicht schlecht!!
Mit freundlichen Grüßen
Albrecht
noch ein Bisschen Code dazu
01.03.2011 21:51:52
Rudi
Hallo,
funktioniert nur mit verbundenen Spalte, keine verbundenen Zeilen! Kann man aber sicher auch realisieren.
Sub SetRowHeight(rngMergeArea As Range)
Dim myStep, arrStep
Application.ScreenUpdating = False
arrStep = Array(5, 1, 0.1)
With Sheets("Tmp").Range("a1")
.Value = rngMergeArea.Text
.WrapText = rngMergeArea.MergeArea.WrapText
.ColumnWidth = rngMergeArea.MergeArea.Width / 7.5
For Each myStep In arrStep
Do While .Width 

Evtl über Worksheet_Change aufrufen
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.MergeArea.Columns.Count > 1 And Target.MergeArea.Rows.Count = 1 Then
SetRowHeight Target
End If
End Sub

Aufpassen, dass die Breite des Bereichs nicht größer als 255 Zeichen ist.
Gruß
Rudi
Anzeige

399 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige