Seite 1 von 1

[gelöst] OOo Basic - try..catch?

Verfasst: Fr, 16.11.2012 16:58
von CamuelSpenser
Hallo ihr lieben,

hab wieder mal ne kleine Frage gibt es sowas wie Try.. Catch in OOo Basic?

Hab nämlich ein Makro, bei welchem der Auslöser mitgesendet wird. Der Auslöser kann hierbei eine ListBox, ein Radiobutton sowie auch von einer modifizierten Zelle herführen. Will jedoch nur, dass wenn eine zelle modifiziert wird, welche in einer reihe liegt welche kleiner als 24 ist ein weiteres Makro mithilfe des Call Befehls aufrufen.

Das mit dem ausführen wenn die zeile kleiner als 24 ist klappt Problemlos solange der Auslöser des Makros eine Zelle ist.

Code: Alles auswählen

    sAuslesen     = oEvent.AbsoluteName ' Zuweisung des Namens des Auslösenden Events, wenn Auslöser eine Zelle ist '
    sAuslesen     = right(sAuslesen,2)  ' die zwei letzten Zeichen auslesen '
    if val(sAuslesen) = 0 then sAuslesen = right(sAuslesen,1) ' wenn beide zeichen eine zahl sind ist val(sAuslesen) > 0 , val("$1") = 0


Wird das Makro jedoch durch eine dropdown Liste ausgeführt bekomme ich die berechtigte Fehlermeldung, dass das Objekt dropdown liste die Methode AbsolutName nicht kennt. Da diese zum herausfinden des Namens ja die "Source.Model.Name" hat. Dies ist aber eigentlich nur nebensächlich. es geht ja im Grunde darum, dass das nächste Makro nur ausgeführt wird wenn es von einer Zelle ausgeführt wird. Wollte zu diesem Zweck einen befehl wie try versuchen.. hjedoch hat mior dabei googln auch nix gebracht.

Sprich soll so aussehn (/nur als beispiel):
Wenn oEvent.AbsoluteName funktionnier dann lies die beiden letzten Zeichen aus.
Wenn nicht dann sAuslesen = 25

LG Camuel

Re: OOo Basic - try..catch?

Verfasst: Fr, 16.11.2012 17:56
von komma4
Nein, sowas gibt es nicht.

Du kannst nur die/eine Fehlerbedingung abfangen, siehe F1 Online BASIC Hilfe zu ON ERROR

Re: OOo Basic - try..catch?

Verfasst: Fr, 16.11.2012 18:20
von CamuelSpenser
Hey.

Erstmal Danke für deine Hilfe, passt perfekt genau das was gebraucht habe.

hab es jetzt so gelöst wie du mir damit deutlich machen wolltest :

Code: Alles auswählen

Sub Calculate_PE(oEvent)
On Error Goto ErrorHandler
dim sAuslesen    as String
    sAuslesen     = oEvent.AbsoluteName
    sAuslesen     = right(sAuslesen,2)
    if val(sAuslesen) = 0 then sAuslesen = right(sAuslesen,1)
    if Val(sAuslesen) < 24 then Call iZInitiate()
Exit Sub
ErrorHandler: 
        sAuslesen = 25
        Resume Next
End Sub