Anzeige
Archiv - Navigation
552to556
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
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zelleninhalte umbrechen

Zelleninhalte umbrechen
27.01.2005 11:37:58
Julian
Hallo zusammen
Nachdem ihr mir hier immer gut weitergeholfen habt wende ich mich nun mit einem weiteren Problem an euch.
Ich habe in einer Tabelle eine Zeile in einer dieser Zellen steht Text
ich habe ein Makro mit dem ich einen Zeilenumbruch ab einer bestimmten Zeichenanzahl herbeiführen kann. Das ist soweit schon mal ganz schön. Das eintige problem ist nun aber das er mir auch die Zeilen die unter 40 Zeichen haben versucht umzubrechen. Das heist er zieht auch zeilen in denen weniger als 40 Zeichen stehen zusammen.
wie kann ich es jetzt programmieren das er mir nur dann eine Zeile umbricht wenn sie mehr als 40 Zeichen hat und die anderen in Ruhe lässt
Ich Danke euch schon mal im Vorraus für eure Hilfe
mfg Julian Waldmann
Ich habe euch mal das Makro mit nem Beispiel angehängt
https://www.herber.de/bbs/user/16970.xls

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte umbrechen
Reinhard
Hi Julian,
ich mag keine Dateien mit Ereigniscode der meine Symbolleisten verändert. Nicht zu 100% denke ich/andere daran mit deaktivierten Makros zu starten.
Ich mutmasse sehr in deinem Fall hätte das Posten des betreffenden Codes gereicht.
Ungetestet würde ich das so probieren:

Public Function breakText(ByVal text As String, ByVal länge As Integer) As String
If len(text)<= länge then 'Neu
breakText=text        'Neu
exit function         'Neu
End if                    'Neu
Dim tmp As String, str As String
Dim lenT As Integer, i As Integer, n As Integer
lenT = Len(text)
n = 1
i = 1
Do
tmp = Mid(text, i, länge)
If lenT - i >= länge Then
n = Len(tmp) - InStr(1, StrReverse(tmp), " ") + 1
Else
n = Len(tmp)
End If
str = str & Trim(Left(tmp, n)) & vbLf
i = i + n
Loop While i < lenT
breakText = Left(str, Len(str) - 1)
End Function

Gruß
Reinhard
Anzeige
AW: Zelleninhalte umbrechen
27.01.2005 12:12:52
Julian
Hmm Danke schonnmal für den Tip
und deinen insatz nur macht er leider noch nicht das was er soll.
irgend eine weitere idee?
Danke
mfg Julian
AW: Zelleninhalte umbrechen
Reinhard
Hi Julian,
was genau klappt noch nicht? Wegen der 40? Dachte wäre ein Schreibfehler weil du in der Sub die Function mit länge=60 aufrufst. Wenns 40 sein soll:

Public Function breakText(ByVal text As String, ByVal länge As Integer) As String
If len(text)<= 40    then 'Neu
breakText=text        'Neu
exit function         'Neu
End if                    'Neu
Dim tmp As String, str As String
Dim lenT As Integer, i As Integer, n As Integer
lenT = Len(text)
n = 1
i = 1
Do
tmp = Mid(text, i, länge)
If lenT - i >= länge Then
n = Len(tmp) - InStr(1, StrReverse(tmp), " ") + 1
Else
n = Len(tmp)
End If
str = str & Trim(Left(tmp, n)) & vbLf
i = i + n
Loop While i < lenT
breakText = Left(str, Len(str) - 1)
End Function

Gruß
Reinhard
Anzeige
AW: Zelleninhalte umbrechen
27.01.2005 13:26:17
Julian
Das Problem ist immer noch das er versucht mir einfach jede Zeile 40 Zeichen Lang zu
vielleicht ist auch noch ein weiteres Problem das wenn eine Zeile mehr als 40 Zeichen hat er dann den Rest der zeile nicht in eine neue Zeile umbricht sondern in die nächst kommende Zeile am anfang hinzufügt.
die beste Lösung hier wäre wenn er alles was über 40 Zeichen hat in eine nächste leere zeile in der Zelle zu kopieren.
Danke für deine Zeit und Mühe und hilfe
mfg Julian
AW: Zelleninhalte umbrechen
27.01.2005 13:30:49
Julian
Das Problem ist immer noch das er versucht mir einfach jede Zeile 40 Zeichen Lang zu
vielleicht ist auch noch ein weiteres Problem das wenn eine Zeile mehr als 40 Zeichen hat er dann den Rest der zeile nicht in eine neue Zeile umbricht sondern in die nächst kommende Zeile am anfang hinzufügt.
die beste Lösung hier wäre wenn er alles was über 40 Zeichen hat in eine nächste leere zeile in der Zelle zu kopieren.
Danke für deine Zeit und Mühe und hilfe
mfg Julian
Anzeige
AW: Zelleninhalte umbrechen
Reinhard
Hi Julian,
es klappt soweit per Sub, bei Aufruf als Funktion in einer Zelle klappt es nicht ganz, die Zellgröße wird nicht angepasst man muss dies manuell machen.
Gruß
Reinhard

Function breakText(ByVal Text As String, ByVal Länge As Integer) As String
Dim n As Integer, tmp As String
If Len(Text) <= Länge Then
breakText = Text
Exit Function
End If
If TypeName(Application.Caller) = "Range" Then cc = Application.Caller.Address
For n = 1 To Int(Len(Text) / Länge)
tmp = tmp & Left(Text, Länge) & vbLf
Text = Mid(Text, Länge + 1)
Next n
breakText = tmp
If cc <> "" Then
Range(cc).WrapText = True   'passiert nix
Range(cc).Columns.AutoFit   'passiert nix
Range(cc).Rows.AutoFit      'passiert nix
End If
End Function

'In der Tabelle!
'Formel: =breakText(A1;52)
'als Funktion in VBA!

Sub test()
Dim str As String
str = "Eine einheitliche Form der Namensgebung für Variablen, " & _
"Konstanten und anderer VBA-Komponenten erleichtet es dem einen Entwickler, " & _
"den Code des anderen zu verstehen. Zum anderen findet man sich bei einer " & _
"disziplinierten Namensvergebung auch in seinem eigenen Code besser zurecht. " & _
"Gänzlich unerlässlich ist die Vereinbarung, wenn ein VBA-Programm im Team " & _
"erstellt wird.Microsoft konnte sich bisher nicht entschliessen, " & _
"Namenskonventionen für Excel/VBA festzulegen. Diese Lücke wurde durch " & _
"Entwickler im englischen Sprachraum gefüllt, indem sie unverbindliche " & _
"Standards vereinbarten, die sich allerdings bisher international nicht " & _
"durchsetzen konnten. Es handelt sich hier um eine Kombination aus " & _
"vereinbarten Kürzeln und beschreibenden (sprechenden) Namen.Der Verfasser " & _
"dieser Zusammenfassung stützt sich im Wesentlichen auf die von Graham Keene " & _
"und James Barnard im Jahre 1996 veröffentlichten Standards, die er an die " & _
"aktuellen Excel-Versionen angepasst hat."
MsgBox breakText(str, 60)
End Sub

Anzeige
AW: Zelleninhalte umbrechen
Julian
Hallo
Cool das du die Zeit aufbrings um das Problem zu lösen
nur dummerweise bringt er mir gerade den Fehler "Fehler beim Kompilieren Variable nicht definiert un markieren tut er mir das CC
mfg Julian
option explizit
Reinhard
Hi Julian,
kein Problem, du hast Option Explizitausgewählt, was ja korrekt ist, er bemängelt dass er cc nicht kennt.
Also am Anfang in der sub noch ein
Dim cc as String
einfügen.
Gruß
Reinhard
AW: option explizit
27.01.2005 15:13:19
Julian
hmmmmm....
Also der will einfach nicht das machen was ich will
er macht eigentlich immer noch die gleichen Fehler wie am Anfang...
leider
mfg Julian
Anzeige
AW: Code läuft einwandfrei
27.01.2005 15:45:15
Julian
das makro soll im eigentlich nur dann einen Zeilenumbruch machen wenn eine Zeile
einer zelle die Zeichenzahl 40 überschreitet. Wenn das nun passiert dann dann bricht er mir den Rest der Zeile schon um das Problem bei diesem Umbruch ist nur das er dann den den resttext aus der vorzeile vor den inhalt der folgenden zeile kopiert und dann wiederum nach 40 Zeichen umbricht und so kommt das ganze system durcheinander.
ich schicke dir mal im Anhang die Richtige Tabelle zu das war ein Fehler von mir denn um die tabelle vorhin ging es gar nicht.
https://www.herber.de/bbs/user/16994.xls
Danke und mfg
Julian
Anzeige
AW: Code läuft einwandfrei
Reinhard
Hi Julian,
ich kapier da nicht alles,
lade mal eine Datei hoch, OHNE jedweden Code, besonders nicht in "DieseArbeitsmappe" wo in A1 der Text "roh" also nicht umgebrochen steht.
In B1 steht dann der Text EXAKT so wie du ihn gerne hättest.
Gruß
Reinhard

I break together :-(
Reinhard
Hi Julian,
ich kapier da nicht alles,
lade mal eine Datei hoch, OHNE jedweden Code, besonders nicht in "DieseArbeitsmappe" wo in A1 der Text "roh" also nicht umgebrochen steht.
In B1 steht dann der Text EXAKT so wie du ihn gerne hättest.

Gruß
Reinhard
Anzeige
AW: I break together :-(
27.01.2005 16:27:55
Julian
hmmm könntest du mir mal deine Datei mit der du das versucht hast schicken?
mfg Julian Waldmann
Hä? Dritter Versuch mit gleichem Text :-(
Reinhard
Hi Julian,
ich kapier da nicht alles,
lade mal eine Datei hoch, OHNE jedweden Code, besonders nicht in "DieseArbeitsmappe" wo in A1 der Text "roh" also nicht umgebrochen steht.
In B1 steht dann der Text EXAKT so wie du ihn gerne hättest.

Gruß
Reinhard
AW: Hä? Dritter Versuch mit gleichem Text :-(
27.01.2005 16:49:16
Julian
Hast du vielleicht mal ne Email adresse an die ich schreiben kann? das geht vielleicht ein bischen einfacher
meine wäre JulianWaldmann@gmx.de
Ich blicks nicht
Reinhard
Hallo Julian,
irgendwie reden wir aneinander vorbei,
du wolltest Code der dir den in einer zelle , zum Beispiel A1 vorhanden ist, dass dieser umgebrochen wird, wobei du die Anzahl zeichen vorgibst.
Ich habe den Code gebastelt, hier gepostet.
Dann eine datei hochgeladen wo der Code weitestgehend funktioniert.
Alles war dir nicht recht irgendwie.
Dann bat ich dich 3mal eine Datei hochzuladen wo in einer zelle der Text steht so wie er ist und in einer anderen zelle der text so steht wie du ihn möchtest.
Es kam nix?
Das verstehe ich absolut nicht.
Sicher habe ich eine emailaddi, steht hier auch irgendwo, aber warum?
Ist nicht im Sinnes Forums.
Und wenn es wegen Datenschutz ist, schreib doch in die Zelle A1 was aus der Bibel, der Maobibel oder satanischen Versen, ist doch für das Vba-problem egal.
Gruß
Reinhard
Anzeige
AW: Ich blicks nicht
27.01.2005 23:51:34
Julian
Hallo Rheinhard
Also ich versuch nochmal die Datei hochzuladen obwohl ich das schon mal
probiert habe ;-)
hat aber dann Wohl nicht geklappt.
Hier noch einmal
https://www.herber.de/bbs/user/17035.xls
Wenn es dann immer noch nicht geht und du noch lust hast dich damit zu beschäftigen
wäre ein andere möglichkeit die ich mir überlegt habe
Das man in Word ein Makro schreibt das bei mir in einer Word Tabelle Den Inhalt der Zellen in Spalte Vier durchsucht bzw eigentlich nur das Satzende und schaut ob da als letzter character eine Absatzmarke Steht wenn das der Fall ist sollte es die nächste zeile durchsuchen und wenn es eine zeile ohne dieses Ende findet sollte das Programm dann eben am Satzende so eine Absatzmarke Setzen.
Ist das möglich ?
Danke im Vorraus
mfg Julian
Anzeige
AW: Ich blicks nicht
28.01.2005 09:21:44
Julian
Auch bei dir möchte ich mich noch entschuldigen das ich trotz deiner fast ganztägigen bemühungen das Thema noch in einem anderen forum eingestellt habe
ich dachte so könnte ich vielleicht das beste ergebniss bekommen.
tut mir leid wenn ich dich so verärgert haben sollte.
Danke nochmal für deine Hilfe
mfg Julian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige