Seite 1 von 1

Ausführung eines Makros während der Gültigkeitsprüfung

Verfasst: Do 24. Apr 2014, 17:28
von MädchenFürAlles
Hallo zusammen!
Ich versuche gerade folgendes Problem zu lösen:
In eine Liste (LOCalc) soll normalerweise das aktuelle Datum eingegeben werden. Über die Gültigkeit kann ich die Eingabemöglichkeit in dem Feld auf das aktuelle Datum beschränken. Es soll aber auch die Möglichkeit bestehen, das bereits eingegebene Datum zu übernehmen, falls dieses benötigt wird. Nun habe ich folgendes Makro geschrieben, das in der Gültigkeitsüberprüfung im Bereich der Fehlermeldung aufgerufen wird:

Sub Datumspruefung

dim Eingabe as date
dim Datumswert as date

odoc=thisComponent
oZelle=oDoc.getCurrentSelection()
Eingabe=oZelle.value
Datumswert= date()
If Eingabe <> Datumswert then
Nachfrage = msgbox("Möchten Sie das Datum " & Eingabe & " übernehmen? Falls nicht wird das aktuelle Datum eingetragen (" & Datumswert & ")!",4)
if Nachfrage = 7 then
oZelle2=oDoc.getCurrentSelection()
oZelle2.value = date()
end if
end if

End Sub

Das Problem ist, dass LO die Eingabe überprüft, das Makro ausführt, dann aber nicht das aktuelle Datum einträgt, sondern nach der Makroausführung den eingegebenen Wert einträgt.
Ich benutze LO 4.0 unter WinVista.
Vielen Dank schon einmal für Ihre Hilfe!

Re: Ausführung eines Makros während der Gültigkeitsprüfung

Verfasst: Fr 25. Apr 2014, 21:31
von F3K Total
Hi,
ich glaube die gewüschte Funktion erfüllt dieses Makro für Spalte A in Tabelle 1, wenn es an das Tabellenereignis "Inhalt geändert" gebunden wird, und auf du auf die Gültigkeitsprüfung verzichtest.

Code: Alles auswählen

Sub Datumspruefung(event)
    dim Eingabe as date
    dim Datumswert as date
    odoc = thisComponent
    osheet = Thiscomponent.sheets.getbyname("Tabelle1")
    oRange = osheet.columns.getbyname("A")
    oZelle = event
    if oZelle.supportsservice("com.sun.star.sheet.SheetCell") then
    oZellRangeAddress  = oZelle.Rangeaddress
        if oRange.queryIntersection(oZellRangeAddress).Count = 1 Then
            Eingabe = oZelle.value
            Datumswert = date()
            If Eingabe <> Datumswert then
                if msgbox ("Möchten Sie das Datum " & Eingabe & " übernehmen? Falls nicht wird das aktuelle Datum eingetragen (" & Datumswert & ")!",36,"Prüfung des Datums") = 7 then
                    oZelle.value = date()
                endif
            end if
        End if
    end if
End Sub
HTH R

Re: Ausführung eines Makros während der Gültigkeitsprüfung

Verfasst: Do 25. Sep 2014, 11:51
von MädchenFürAlles
Vielen Dank für deine Hilfe! Es ist genau das, was ich gesucht habe!!!

Re: Ausführung eines Makros während der Gültigkeitsprüfung

Verfasst: Do 25. Sep 2014, 17:39
von F3K Total
Unglaublich!
Kaum wartet man fünf Monate, schwupps, schon ist ein Feedback da. Wirklich unglaublich!
R