Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1004to1008
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

Automatisch Zeilen einfügen und Text reinschreiben

Automatisch Zeilen einfügen und Text reinschreiben
02.09.2008 20:54:00
oblivion
Hallo,
hab folgendes Problem.
Ich habe ein Tabelle mit 4 Spalten. Wegen dem automatischen Zeilenumbruch habe ich keine vebundenen Zeilen.
In Excel ist die Zeilenhöhe ja auf 409 begrenzt. Ich habe aber teilweise Text der größere Spalten bräuchte.
Wenn ich die Spalte größer machen würde, dann kommt die ganze Seitenformatierung durcheinander.
Kann man mit Hilfe eines VBAs prüfen lassen, wenn die Maximale Zeilenhöhe erreicht ist, und der Text aber noch weiter geht, das dann eine Zweite Zeile angelegt wird und der Text dann dort automatisch weitergeschrieben wird.
Also zum Beispiel der lange Text steht in Spalte C4 und wenn diese Zelle die Maximale Höhe erreicht hat, dann wird automatisch eine neue Zeile eingefügt (wäre dann C5) und der überhängende Text wird dann dort automatisch reingeschrieben. Aber der Text der vorher in C5 stand müsste dann in C6 stehen.
Ist dies überhaupt machbar?
Danke für die Hilfe.
Gruß Oblivion

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Zeilen einfügen und Text reinschreiben
03.09.2008 12:32:00
fcs
Hallo Oblivion,
automatisch den überschüssigen Text übertragen ist schwierig, da dies eine komplexe Textanalyse erfordert.
Man kann nach der Eingabe ggf. etwas einfacher den Text halbieren und auf zwei Zeilen verteilen.
Nachfolgendes Makro im VBA-Editor unter entsprechenden Tabelle einfügen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
'Zeilenhöhe in Spalte 3 ab Zeile 2 nach Eingabe prüfen ggf. Leerzeile einfügen
Dim Laenge As Long
If Target.Column = 3 And Target.Row > 1 Then
If Me.Rows(Target.Row).RowHeight > 390 Then
'Leerzeile einfügen
Me.Rows(Target.Row + 1).Insert
'halbe Länge des Textes ermitteln
Laenge = Int(Len(Target.Value) / 2)
'Position des nächsten Leerzeichens ermiteln
Do Until Mid(Target.Value, Laenge, 1) = " "
Laenge = Laenge + 1
Loop
'2. Texthälfte in Folgezeile eintragen
Target.Offset(1, 0).Value = Mid(Target.Value, Laenge + 1)
'1. Texthälfte in Zelle eintragen
Target.Value = Left(Target.Value, Laenge)
MsgBox "Zelle " & Target.Address & " enthielt zu viel Text." & vbLf _
& "Text wurde teilweise in nächste Zeile übertragen!"
End If
End If
End Sub


Anzeige
AW: Automatisch Zeilen einfügen und Text reinschreiben
03.09.2008 17:51:28
oblivion
Hallo, klappt super. Vielen Dank.
Hab aber noch zwei kleine Fragen.
Ich habe es auspribiert und da ist mir aufgefallen, das in einer Zelle vor dem Text eine Leerzeile stand. Bei den anderen Zellen war das nicht so.
Kann man das irgendwir im VBA einbauen, das es nicht dazu kommt. Ich konnte diese Leerzeile auch nicht löschen, als ich die Zelle angeklickt hatte und entfernen gedrückt habe.
Und meine zweite Frage wäre, wie ich den Code anpassen muss, wenn ich nicht nur in der 3 Spalte die Zeilen überprüfen und anpassen lassen möchte sondern auch die anderen Spalten.
Wenn ich die erste Zelle mit Rahmen formatiere dann kommt in der nächsten kein Rahmen mehr. Kann man da irgendwas machen?
Meine andere Idee wäre ich mache eine Tabelle mit zwei Zeilen und meinetwegen 4 Spalten. Zwischen den zwei Zeilen lege ich vielleicht 20 versteckte Zeilen an. Kann man das per VBA steuern, dass immer nur die erste Zeile wieder auftaucht und dann dort der Text weitergeschrieben wird?
Ich bastel mal schnell eine Beispieldatei. Ich habe es mal eben mit den versteckten Zeilen probiert. Es klappt nicht dass diese benutzt werden. Aber ich habe das Problem mit der Formatierung des Rahmens gelöst.
https://www.herber.de/bbs/user/55169.xls
Kann man diese Zeilen, wenn ich es für sagen wir mal vier oder fünf Spalten benutze auch die Zeilen wieder löschen, wenn nichts in einer anderen Spalte und in dieser Zeile steht.
Und ich glaube es gibt auch Probleme, wenn man in einer Spalte den Text löscht und in einer anderen steht noch Text und man schreibt wieder was neues rein, dann wird ja wieder was eingefügt und bringt den Text in einer anderen Spalte durcheinader.
Danke schon mal für deine Hilfe.
Gruß Oblivion
Anzeige
AW: Automatisch Zeilen einfügen und Text reinschreiben
04.09.2008 09:56:39
fcs
Hallo Oblivion,
ich hab noch mal etwas gebastelt und in deine Beispieldatei eingebaut.
https://www.herber.de/bbs/user/55183.xls
Das sollte die meisten Probleme bereinigen.
Das mit der Leerzeile in einer Zelle ist möglicherweise ein Formatierungsproblem. Die Zellen müssen mit vertikaler Ausrichtung "oben" formatiert sein.
Die Rahmenformatierung hab ich teilweise per bedingter Formatierung gemacht, so dass in einer Überschriftenzeile (Zelle in Spalte A ist ausgefüllt) immer ein Rahmen oben angezeigt wird, die letzte Zeile mit Daten erhält einen Rahmen unten.
Die Idee mit den ausgeblendeten Zeilen solltest du schnell vergessen. Das ist kompliziert zu verwalten.
Werden die Daten in einer Zeile alle gelöscht, dann wird diese Zeile automatisch gelöscht.
Das Problem mit der Eingabe in verschieden Spalten hab ich auch gelöst. Das Makro prüft ob in der Folgezeile schon geteilte Texte stehen. Damit dies funktioniert muss immer erst die Überschrift in Spalte A eingetragen werden, danach dann die Texte, die ggf. auf mehrere Zeilen verteilt werden müssen.
Gruß
Franz
Anzeige
AW: Automatisch Zeilen einfügen und Text reinschreiben
04.09.2008 17:53:00
oblivion
Hallo, danke für deine Hilfe und deine Mühen. Mit bedingter Formatierung hätte ich auch drauf kommen können. Hab ja schon selber damit gearbeitet. Ich werde die Beispieldatei jetzt mal auf meine richtige Datei übertragen. Mal sehen ob soweit alles klappt.
Gruß Oblivion

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige