Datum als Text einfügen, falls bestimmte Zelle leer

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

chgnepf
Beiträge: 8
Registriert: Mi, 22.02.2012 15:13

Datum als Text einfügen, falls bestimmte Zelle leer

Beitrag 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
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

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

Beitrag 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
chgnepf
Beiträge: 8
Registriert: Mi, 22.02.2012 15:13

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

Beitrag 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
Antworten