Liebe Forengemeinde,
nach unserm Wechsel zur aktuellen Allplanversion 2023 funktionieren unsere Plan-Legenden mit Excel-Formeln leider nicht mehr. Daher habe ich mich mal wieder dem Thema Zeilenumbruch in der Planlegende gewidmet. Hier gibt es nun die Möglichkeit zur Nutzung von Python-Scripts. Da bei Planlegenden die vbs-Formeln zu mehrzeiligen Text von Meister Jörg bei mir leider nicht funktionieren, habe ich einen neuen Lösungsansatz.
Mit zwei Python-Funktionen wollte ich zunächst einen String nach einer Anzahl von Zeichen auf Leerzeichen zu untersuchen, das letzte Leerzeichen zurückzugeben und durch ein Sonderzeichen ersetzten (Funktion: zeilenumbruch(@xxx@;(Zeichenanzahl Untersuchung Leerzeichen))). Mit der Zweiten Formel teil_tz von f_hoeser (Link) möchte ich nun den Teilstring 1,2,3 in verschiedenen Zellen ausgeben. Also habe ich eine Zelle definiert die mit "p:zeilenumbruch" die Zeichen am gewünschten Umbruch ersetzt "*" und weitere Zellen die die Teilstrings auslesen. Allerdings funktioniert das Ganze noch nicht sauber.
Folgende Probleme bestehen:
- Formel p:zeichenumbruch gibt mir nur den ersten Teilstring aus (siehe Bild)
- Formel p:teil_tz gibt alles nur in Großformat aus und durch den Fehler in p:zeilenzmbruch auch nur den ersten Teilstring
Eine bessere Lösung währe eine kombinierte Python-Formel ohne den Umweg über zwei Zellen - das scheitert allerdings an meinen Python Kenntnissen. Habt Ihr eine Idee? Anbei die beiden Python Scripts:
def zeilenumbruch(s, l):
l = int(l)
aus = ""
while len(s) > l:
p = l-1
while p > 0 and s[p]not in " -":
p -= 1
if p == 0:
p = l
aus += s[:p+1] + "*"
s = s[p+1:]
return aus+s
def teil_tz(a,b,c):
c = int(c)
count = a.count(b) + 1
if c > count or c <= 0:
string = " "
else:
substrings = a.split(b)
string = substrings[c - 1]
return string.upper()
Liebe Grüße Micha