Anzeige
Archiv - Navigation
1020to1024
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 von Zellen/verbundenen Zellen

Zeilenhöhe von Zellen/verbundenen Zellen
05.11.2008 11:57:03
Zellen/verbundenen
Hi Leute
Habe jetzt schon viel gesucht, und auch etliches gefunden, aber nichts konnte mir weiterhelfen.
Ich habe Texte, die mit der normalen Höhe von 409,50 in Excel nicht mehr auskommen
d.h. es zeigt mir alle Zeilen die länger sind nicht mehr an
Nun gibt es 2 Möglichkeiten:
1) Kann man die maximale Zeilenhöhe irgendwo ändern, damit sie nicht mehr 409,50, sondern z.B. 1000 ist?
2) Es gibt ein Hintertür, in dem man mehrere Zellen verbindet (5 Zellen verbinden - 5x409,50 Zellenhöhe)
Jedoch ist es hier dann so, dass die Zellenhöhe nicht mehr automatisch angepasst wird, auch nicht durch Doppelklick auf die Zeile.
Nun habe ich hier ein paar Links dazu gefunden, die die Zellenhöhe einer verbundenen Zelle automatisch ändert, die bei mir alle nicht funktionieren.
http://www.xlfaq.herber.de/texte/137101h.htm
https://www.herber.de/forum/archiv/572to576/t573813.htm
Kann mir hier jemand helfen?
Danke schon mal
Christian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenhöhe von Zellen/verbundenen Zellen
06.11.2008 14:49:07
Zellen/verbundenen
Hallo Christian,
deine beiden Fundstellen funktionieren nur wenn die Zellen innerhalb einer Zeile (quer) verbunden sind, aber nicht für vertikal verbundene Zellen.
Es gibt keine Möglichkeit die max. Zeilenhöhe zu verändern. Macht auch keinen Sinn, da die Zeilenhöhe klein genug sein muss, um auf eine Seite gedruckt werden zu können. Bei DIN4 quer ergibt Höhe 409 schon fast eine Seite.
Generell: Excel ist keine Textverarbeitung und auch keine Datenbank. Die Verarbeitung langer Texte sollt man mit diesen beiden Werkzeugen vornehmen.
Nachfolgend Prozeduren die in begrenztem Umfang durch vertikale Verbindung von Zellen lange Zell-Inhalte auch anzeigen. Allerdings funktionierte das bei mir nur bis ca. 1100 Zeichen. Außerdem solten im Text keine manuellen Zeilenschaltungen enthalten sein.
Bei Bedarf fügt das Makro Leerzeilen ein, um dann Zellen zu Verbinden. Diese werden gff. auch wieder gelöscht, wenn man den Zellinhalt wieder verkleinert.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
'Ereignis-Makro bei Zellwertänderung
Const Spalte As Long = 4 'Nummer der Spalte in der ggf. Zellen vertikal verbunden werden  _
sollen
If Target.Column = Spalte Then
Application.EnableEvents = False
Call VerbindenVertikal(Target)
Application.EnableEvents = True
End If
End Sub
Sub aaVertikalVerbindenTest()
Application.EnableEvents = False
Call VerbindenVertikal(ActiveCell)
Application.EnableEvents = True
End Sub
Sub VerbindenVertikal(ZielZelle As Range)
'Bei zuviel Text in Zelle werden Leerzeile(n) eingefügt und Zellen vertikal verbunden.
Dim lngZeile As Long, lngZeile2 As Long, Spalte As Long
Dim strInhalt As String, strTeil As String, Zelle As Range
Dim lngCount As Long, lngI As Long
Dim dblZeilenhoehe As Double, dblTeilHoehe As Double
If ZielZelle.WrapText = False Then
MsgBox "Zelle muss mit Textausrichtung ""Zeilenumbruch"" formatiert sein, " _
& "damit Makro funktioniert!"
Exit Sub
End If
Application.ScreenUpdating = False
lngZeile = ZielZelle.Row 'Zeile der Zelle die Text enthält
Spalte = ZielZelle.Column 'Spalte der Zelle die Text enthält
If ZielZelle.MergeCells = True Then
'letzte zeile der verbundenen Zellen
lngZeile2 = lngZeile + ZielZelle.MergeArea.Rows.Count - 1
'Verbindung der Zellen aufheben
ZielZelle.MergeArea.UnMerge
'Zeilen der verbundenen unterhalb der 1. Zeile löschen
Range(Rows(lngZeile + 1), Rows(lngZeile2)).Delete shift:=xlShiftUp
End If
'Optimale Höhe der Zeile einstellen
Rows(lngZeile).AutoFit
If Rows(lngZeile).RowHeight > 409 Then
Set Zelle = Cells(lngZeile, Spalte) 'Zelle mit Textinhalt
'Inhalt der Zelle merken
strInhalt = Zelle.Value
Zelle.ClearContents
dblZeilenhoehe = Rows(Zelle.Row).RowHeight 'Mindestzeilenhöhe für 1. Zeile merken
'Leerzeile unter Text einfügen
Rows(Zelle.Row + 1).Insert shift:=xlShiftDown
lngCount = 1
'erforderliche Höhe der verbundenen Zeilen ermiiteln durch Einfügen von Teiltexten
' in Leerzeile
Do
lngCount = lngCount + 1
strTeil = Left(strInhalt, Int(Len(strInhalt) / lngCount))
Zelle.Offset(1, 0).Value = strTeil
dblTeilHoehe = Rows(Zelle.Row + 1).RowHeight
Loop Until dblTeilHoehe  2 Then
'ggf. weitere LeerZeilen einfügen
For lngI = 3 To lngCount
Rows(Zelle.Row + 1).Insert shift:=xlShiftDown
Next
End If
'Inhalt wieder in Zelle einfügen
Zelle.Value = strInhalt
'Zeilenhöhen festlegen
For lngI = 1 To lngCount
'Höhe von Zeile 1 und 2 abhängig von der Mindesthöhe der 1. Zeile einstellen
If lngI = 1 Then
If dblTeilHoehe 


Anzeige
AW: Zeilenhöhe von Zellen/verbundenen Zellen
07.11.2008 07:01:59
Zellen/verbundenen
Hallo Franz
Du hast dir ja richtig Mühe für mich gegeben, dafür herzlichen Dank
Mein Problem ist, das ich eine Preisliste in Excel erstellen will, um eine einfache Preisgestaltung zu haben. Diese Preisliste hat aber auch Langtexte um meine Produkte zu genauer zu erklären, technische Daten anzugeben usw.
Jetzt hab ich sie in Word, und wenn ich Preisänderungen habe, dann ist das immer ein "Höllenaufwand".
In Excel kann ich das so machen, das ich ein "Masterregister" habe, das ich bearbeite, und hinterbei sich alles von selbst generiert. Zumindest denke ich, das das so funktioniert.
Nun zu deinem Programm:
Ich war auch begeistert wie ich es getestet habe.
Die ersten paar Tests liefen Einwandfrei.
Aber leider bin ich draufgekommen, dass es nicht immer funktioniert.
Leider benötige ich manuelle Zeilenumbrüche, um ein klares Design zu wahren.
Jetzt wollte ich gerade eine Musterdatei erstellen, und da hat allerdings wieder alles geklappt, was auch vorher nicht geklappt hat. Weiß jetzt nicht woran es liegt, aber ich nehme mal an am Benutzer.
Es werden auch manuelle Zeilenumbrüche in deinem Programm berücksichtigt, so scheint es mir.
Sollte ich nochmal Probleme haben, würde ich mich gerne an dich wenden, in der nächsten Woche sag ich mal.
Herzlichen Dank nochmal, sollte es weiterhin funktionieren, dann bin ich dir zu viiiiieeeeeeel Dank verpflichtet.
Schöne Grüße und Danke
Christian
Anzeige
AW: Zeilenhöhe von Zellen/verbundenen Zellen
07.11.2008 10:34:00
Zellen/verbundenen
Hallo Christian,
super dass mein Vorschlag etwa deinen Anforderungen gerecht wird.
Problem manuelle Zeilenwechsel:
Wenn in praktisch jeder Zeile ein Zeilenwechsel eingefügt ist, dann funktioniert die Ermittlung der erforderlichen Zeilenhöhen auch recht gut. Sie wird dann ungenau, wenn der Text sehr ungleichmäßig auf die Zeilen verteilt ist, z.B. 1. Texthälfte enthält viel Text je Zeile, 2. Texthälfte wenig Text je Zeile.
Ich hab die Haupt-Prozedur noch ein wenig optimiert, so dass die Variationen in Textlängen und Zeilenwechsel besser berücksichtigt werden.
Gruß
Franz

Sub VerbindenVertikal(ZielZelle As Range)
'Bei zuviel Text in Zelle werden Leerzeile(n) eingefügt und Zellen vertikal verbunden.
Dim lngZeile As Long, lngZeile2 As Long, Spalte As Long
Dim strInhalt As String, strTeil As String, strRest As String, Zelle As Range
Dim lngCount As Long, lngCount2 As Long, lngI As Long
Dim dblZeilenhoehe As Double, dblTeilHoehe As Double
Dim arrHoehen() As Double
If ZielZelle.WrapText = False Then
MsgBox "Zelle muss mit Textausrichtung ""Zeilenumbruch"" formatiert sein, " _
& "damit Makro funktioniert!"
Exit Sub
End If
Application.ScreenUpdating = False
lngZeile = ZielZelle.Row 'Zeile der Zelle die Text enthält
Spalte = ZielZelle.Column 'Spalte der Zelle die Text enthält
If ZielZelle.MergeCells = True Then
'letzte zeile der verbundenen Zellen
lngZeile2 = lngZeile + ZielZelle.MergeArea.Rows.Count - 1
'Verbindung der Zellen aufheben
ZielZelle.MergeArea.UnMerge
'Zeilen der verbundenen unterhalb der 1. Zeile löschen
Range(Rows(lngZeile + 1), Rows(lngZeile2)).Delete shift:=xlShiftUp
End If
'Optimale Höhe der Zeile einstellen
Rows(lngZeile).AutoFit
If Rows(lngZeile).RowHeight > 409 Then
Set Zelle = Cells(lngZeile, Spalte) 'Zelle mit Textinhalt
'Inhalt der Zelle merken
strInhalt = Zelle.Value
Zelle.ClearContents
dblZeilenhoehe = Rows(Zelle.Row).RowHeight 'Mindestzeilenhöhe für 1. Zeile merken
'Leerzeile unter Text einfügen
Rows(Zelle.Row + 1).Insert shift:=xlShiftDown
lngCount = 0
'erforderliche Höhe der verbundenen Zeilen ermitteln durch Einfügen von Teiltexten
' in Leerzeile
strRest = strInhalt
Do
lngCount = lngCount + 1
ReDim Preserve arrHoehen(1 To lngCount)
lngCount2 = 0
strRest = Mid(strRest, Len(strTeil) + 1)
strTeil = strRest
Do
Zelle.Offset(1, 0).Value = strTeil
dblTeilHoehe = Rows(Zelle.Row + 1).RowHeight
If dblTeilHoehe  2 Then
'ggf. weitere LeerZeilen einfügen
For lngI = 3 To lngCount
Rows(Zelle.Row + 1).Insert shift:=xlShiftDown
Next
End If
'Inhalt wieder in Zelle einfügen
Zelle.Value = strInhalt
'Zeilenhöhen festlegen
For lngI = 1 To lngCount
Rows(Zelle.Row + lngI - 1).RowHeight = arrHoehen(lngI)
Next
'Zellen vertikal verbinden
Range(Zelle, Zelle.Offset(lngCount - 1, 0)).Merge
End If
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Zeilenhöhe von Zellen/verbudenen Zellen - Fr.2
07.11.2008 10:00:00
Zellen/verbudenen
Hi Franz
Funktioniert jetzt ohne Probleme.
Habe jedoch noch eine Frage dazu
Da ich ja verlinke, kommt es zu folgendem Problem
Ich schreibe in mein Masterregister etwas hinzu, wodurch sich die Zeilenhöhe ja wieder ändert.
Kann man das automatisieren dass sich die verlinkten Zellen auch mitändern, ausser mit dem Fotoapparat Werkzeug?
Wenn nicht, gibt es eine Möglichkeit deine Funktion nicht nur für eine, sondern für mehrere markierte Zellen zu verwenden? Damit wäre mir auch schon sehr (besser gesagt mehr) geholfen.
Schöne Grüße und nochmals Danke
Christian
AW: Zeilenhöhe von Zellen/verbudenen Zellen - Fr.2
07.11.2008 11:31:00
Zellen/verbudenen
Hallo Christian,
das folgende Makro arbeitet einen selektierten Zellenbereich ab.
Achte bitte darauf, dass sowohl diese Prozedur als auch die Prozedur Sub VerbindenVertikal(ZielZelle As Range) in einem allgemeine Modul im VBA-Editor gespeichert werden und nicht in einem Tabellenmodul, sonst gibt es Ärger.
Ob das dann mit den verlinkten Zellen Funktioniert hängt wahrscheinlich von den verwendeten Formeln ab.
Viel Glück!
Gruß
Franz

Sub aaVertikalVerbindenSelektion()
Dim rngSelektion As Range, Zeile As Long, Zelle As Range
Set rngSelektion = Selection
For Zeile = rngSelektion.Row + rngSelektion.Rows.Count - 1 To rngSelektion.Row Step -1
Set Zelle = Cells(Zeile, rngSelektion.Column)
If Not IsError(Zelle) Then
If Not (Zelle.Value = "" Or Zelle.Value = 0) Then
Application.EnableEvents = False
Call VerbindenVertikal(Zelle)
Application.EnableEvents = True
End If
End If
Next
End Sub


Anzeige
AW: Zeilenhöhe von Zellen/verbudenen Zellen - Fr.2
11.11.2008 17:53:00
Zellen/verbudenen
Hi Franz,
Danke dir, und sorry für meine späte Rückmeldung
aber in der Firma ging es jetzt rund, da hatte ich leider gestern keine zeit mehr das zu prüfen.
Hab mir deine Änderungen jetzt kurz angeschaut und getestet, hier das Ergebnis
1) Mehrere Zellen auf einmal - funktioniert bis jetzt einwandfrei
2) Die optimierte Lösung der Anzeige - funktioniert nicht wirklich
Hab jetzt mal eine Zelle mit 50 Zeilen befüllt, und leider wird mir die letzte "Reihe/Zeile" in der Zelle nicht mehr angezeigt, bzw. wird sehe ich nur mehr ein Fuünftel davon, der Rest verschwindet.
Ohne Optimierte Lösung der Anzeige werden alle 50 Zeilen angezeigt, jedoch noch ein paar weitere.
Ja, habe alle deine VBA-Procedures in das Modul1 gehauen, und nicht in eine Tabelle.
Nur damit sich damit im Zusammenhang keine Unklarheiten ergeben.
Nun meine Bescheiden Frage:
Hast du noch genug Ehrgeiz um dieses Problem zu lösen?
Ich weiß, dass du schon mehr als genug Zeit investiert hast, trotzdem wäre es schön, wenn wir hier einen erfolgreichen Abschluss hätten. Oder was meinst du? *g*
Herzlichen Dank und schöne Grüße
Christian
P.S.: Es ist schon ein Wahnsinn, was du da aus VBA heraus zauberst, Respekt.
Solltest du meine Email-Adresse brauchen, dann sag bescheid falls sie nicht zu sehen ist.
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige