Seite 1 von 1

Textzelle - bestimmtes Zeichen verbieten?

Verfasst: Sa 1. Dez 2012, 13:17
von enieffak
Hallo,

Ich nutze LibreOffice Calc zur Rechnungsschreibung. Dazu habe ich ein Makro, welches nach Fertigstellung der Rechnung Strings aus mehreren Textzelle rausnimmt und diesen zu einem Dateinamen zusammensetzt unter dem die Datei dann gespeichert wird. Funktioniert soweit eigentlich prima - mit einer Ausnahme:
Wenn in der Textzelle ein Forwardslash enthalten ist wird das dann beim Abspeichern der Datei mit Hilfe des Makros so interpretiert, dass man einen Ordner erstellen möchte mit dem Namen der vor dem Slash steht und in diesen Ordner wird dann die Datei gespeichert mit dem Namen der nach dem Slash steht.

Deswegen meine Frage:
Gibt es eine Möglichkeit eine Textzelle mit Format-Code so zu formatieren, dass sie keine Forwardslashes akzeptiert? Im besten Fall sollten die Forwardslashes einfach durch einen Bindestrich ersetzt oder ganz entfernt werden. Alternativ wäre es auch okay, wenn LibreOffice einfach einen Fehler meldet, wenn man einen Forwardslash einfügt.

Danke für eine Antwort!
Martin

Re: Textzelle - bestimmtes Zeichen verbieten?

Verfasst: Sa 1. Dez 2012, 13:46
von karolus
Hallo

Code: Alles auswählen

sub test
print replace("abc/def", "/","-")
end sub
Karolus

Re: Textzelle - bestimmtes Zeichen verbieten?

Verfasst: Sa 1. Dez 2012, 22:24
von enieffak
Erstmal Danke für die Antwort!

Das

Code: Alles auswählen

"abc/def"
soll doch den Inhalt der Zelle um die es geht wiedergeben? Angenommen es steht in Zelle A1, dann schreibe ich doch stattdessen oder? Auf jeden Fall erhalte bei der Ausführung des Makros einen Dialog von LibreOffice ohne Inhalt, welchen ich mit okay oder abbrechen erwidern kann.

Soll mit der Methode der Inhalt der Zelle so manipuliert werden, dass hinterher das gleiche in der Zelle steht - nur ohne den Forwardslash - oder dient das Makro allein dazu den Dateinamen so zu gestalten, dass ein Slash keinen Ordner erzeugt?

Re: Textzelle - bestimmtes Zeichen verbieten?

Verfasst: So 2. Dez 2012, 07:54
von karolus
Hallo

Ich wollte dir zeigen wie man prinzipiell ein Zeichen in einem Text gegen etwas anderes tauscht.
Im Code reicht es nicht 'A1' hinzuschreiben, Basic kann nicht automatisch Zelladressen aus Calc auswerten.
Etwa so:

Code: Alles auswählen

...
doc = thisComponent
sheet = doc.Sheets.getByName("Tabelle1")
cell = sheet.getCellRangeByName("A1")
ordername = replace( cell.String , "/", "-" )
...
 
Karolus

Re: Textzelle - bestimmtes Zeichen verbieten?

Verfasst: So 2. Dez 2012, 12:21
von enieffak
Vielen Dank!