Hallo Stefan,

Stefan Weigel schrieb:

Lars Lehmann schrieb:

=WENN(IstFehler(100/0);"Division durch Null";"Kann berechnet werden")


 > Basic wird es sich aber ähnlich verhalten.

Deine Vermutung liegt nahe, was aber durch folgenden Versuch _nicht_ bestätigt wird:

---schnipp---
  myDoc = thisComponent
  mySheet = myDoc.sheets(0)
  myCell = mySheet.getCellRangeByName("$C$1")
  myValue = myCell.value
  if isError(myValue) then
    print "Fehler"
  else
    print myValue
  end if
---schnipp---

Das war auch meine erste Vermutung. Als es nicht ging, habe ich dann hier gefragt.

Wenn die Zelle C1 einen Fehlerwert (zum Beispiel wegen einer Division durch 0) enthält, so liefert die Value-Eigenschaft den Wert 0 und keinen Fehlerwert. IsError liefert daher immer FALSE. (Nebenbei: In Excel mit VBA funktioniert IsError in einem dem obigen entsprechenden Beispiel sehr wohl, weil dort die Value-Eigenschaft einen Fehlerwert liefert.)

Das andere Verhalten von VBA sollte auch in der Online-Hilfe oder in einem "Guide" erwähnt werden. Mal sehen wie ich das hinkriege.


In einem anderen Versuch ist IsError in OOo-Basic anwendbar:

---schnipp---
 on error resume next
 a=100
 b=0
 if isError(a/b) then
    print "Fehler"
 else
    print a/b
 end if
---schnipp---

Die Division durch 0 ergibt einen Fehler. Damit der Programmablauf dadurch nicht unterbrochen wird, wurde die Fehlerbehandlung in der ersten Zeile abgeschaltet. Mit IsError() kann man prüfen, ob eine Rechenoperation möglich ist oder ob sie zu einem Fehler führen würde. In Abhängigkeit davon kann man im Programm verzweigen. Das ist IMO der Sinn und Zweck der Funktion IsError.

(Dieses Beispiel funktioniert auch in Excel mit VBA.)


Ein Codebeispiel zur Erläuterung, wie hier gezeigt, könnte in der Online-Hilfe nicht schaden ;-)

Das ist der Zweck meiner Anfrage. Das Beispiel werde ich auf jeden Fall für die Online-Hilfe vorschlagen. Es wird also mal wieder ein Issue werden. In dem Zusammenhang habe ich noch eine weitere Frage: In den Formulierungen in der Online-Hilfe (bei isError und bei DefErr) taucht der Begriff "error variable" auf. Gibt es so etwas in OOo-Basic überhaupt, eine Variable, die als Inhalt einen Fehlerwert hat? Wenn ja, wie kommt der Wert dort hinein? Anderenfalls müsste die Beschreibung von IsError nämlich entsprechend geändert werden. Gibt es solche Variablen in VBA?

mfG
Regina




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an