Hallo,
der wesentliche Knackpunkt ist, dass du auf dem Tabellenblatt 20 Datumsfelder hast (siehe Formular-Navigator), von denen z. B. 7 den Namen "Datumsfeld 1" haben. Intern ist das kein Problem, weil jedes Datumsfeld einen eindeutige Index hat, aber wenn das Datumsfeld per Name angesprochen wird, wird bei "Datumsfeld 1" halt nur eines (wahrscheinlich das erste) angesprochen.
Lösung: Benenne jedes Datumsfeld eindeutig.
Noch ein paar Hinweise:
1) Du brauchst nicht für jedes Makro ein extra Modul.
2) Wenn im Datumsfeld in der Eigenschaft "Zusatzinformation" die Zelle schreibst, in die das Datum übertragen werden soll, reicht ein Makro für alle Datumsfelder:
Code: Alles auswählen
Sub uebernahme (oevent as object)
bereich=oevent.source.model.tag
datum=cdatefromunodate(oevent.source.model.date)
thiscomponent.currentcontroller.activesheet.getcellrangebyname(bereich).value=datum
End Sub
Ich habe das für das Datumsfeld bei Anreisetag 1 mal gemacht.
3) Um beim Start mehrere Datumsfelder auf das aktuelle Datum zu setzten lässt sich das Makro erheblich vereinfachen.
Das folgende Makro setzt alle Datumsfelder, deren Name mit "Datumsfeld" beginnt:
Code: Alles auswählen
Sub start
'Zugriff auf das Dokument
odoc=thiscomponent
'Zugriff auf die im Formular "Formular" zusammengefassten Steuerelemente des 1. Tabellenblattes; Zählung beginnt bei 0
oform=odoc.sheets(0).drawpage.forms.getbyname("Formular")
for i=0 to oform.count-1
'Zugriff auf das Steuerelement
ocontrol=oform.getbyindex(i)
if left(ocontrol.name,10)="Datumsfeld" then
'Setzen des aktuellen Datums
ocontrol.date=CDateToUnoDate(date())
end if
next
end sub