Seite 1 von 1

Datum als Text einfügen, falls bestimmte Zelle leer

Verfasst: Sa, 25.02.2012 12:43
von chgnepf
Hallo geschätzte Experten

In einer Rechnungsvorlage habe ich den Code

Code: Alles auswählen

sheet = ThisComponent.currentController.getActiveSheet
sheet.getcellrangebyname("B62").formulalocal = date
um das aktuelle Datum in Feld B62 als Text einzufügen. Dies funktioniert bestens.

Jetzt möchte ich, dass das Datum als Text nur in Feld B62 eingefügt wird, falls das Feld B62 leer ist (für manuelle Datumseingaben). Dazu habe ich folgenden Code versucht:

Code: Alles auswählen

If sheet.getcellrangebyname("B62") = "" then
Sheet = ThisComponent.currentController.getActiveSheet
sheet.getcellrangebyname("B62").formulalocal = date
end if
Hierbei kommt jedoch nun die Fehlermeldung "Objektvariable nicht belegt". Der Versuch mit folgendem Code

Code: Alles auswählen

Sheet = ThisComponent.currentController.getActiveSheet
If sheet.getcellrangebyname("B62") = "" then
Sheet = ThisComponent.currentController.getActiveSheet
sheet.getcellrangebyname("B62").formulalocal = date
end if
gibt die Fehlermeldung "Falscher Wert für Eigenschaft" bei der 2. Zeile

Wie muss ich den Code gezahlten, um das Problem zu lösen?

Vielen Dank für die nochmalige Unterstützung!

Christian

Re: Datum als Text einfügen, falls bestimmte Zelle leer

Verfasst: Sa, 25.02.2012 13:14
von Frieder D.
Hallo Christian

Versuche es mahl so:

Code: Alles auswählen

Sheet = ThisComponent.currentController.getActiveSheet
If sheet.getcellrangebyname("B62").String = "" then
Sheet = ThisComponent.currentController.getActiveSheet
sheet.getcellrangebyname("B62").formulalocal = date
end if
Mit sheet.getcellrangebyname("B62") greifst du nur auf auf das Object der Zelle zu, und nicht auf de Inhalt.
Das object "

Code: Alles auswählen

sheet.getcellrangebyname("B62")
" stellt dir Methoden und Eigenschafte der Zelle zur Verfügung,
Mit denen du dann auf den Inhalt zugreifen kannst, und diesen dann ändern kannst.
z.B.

Code: Alles auswählen

sheet.getcellrangebyname("B62").String ' Die Zeichenkette in der Zelle
sheet.getcellrangebyname("B62").Value  'Der Wert in der Zelle
sheet.getcellrangebyname("B62").Formula  'die Formel in der Zelle (Englisch)
sheet.getcellrangebyname("B62").formulalocal  'die Formel in der Zelle (Deine eingestellte Sprache)
....
Mit Xray oder MRI kannst du herausbekommen,
welche Eigenschaften und Methoden ein Object hat.

Gruß Frieder

Re: Datum als Text einfügen, falls bestimmte Zelle leer

Verfasst: Sa, 25.02.2012 17:00
von chgnepf
Hallo Frieder

Vielen Dank für die rasche und kompetente Antwort!!

Funktioniert bestens und ich habe nochmals viel dazu gelernt.

Ich wünsche ein schönes Wochenende!

Viele Grüsse

Christian