Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlermeldung durch 0-Division in VBA vermeiden?

Fehlermeldung durch 0-Division in VBA vermeiden?
21.03.2006 21:17:52
Matthias
Hallo,
wie kann ich bei der folgenden Formel in VBA die Fehlermeldung der 0-Division vermeiden?
"=VAR!RC" & intZaehler & "/VAR!RC" & intNenner & " -1"
Ich dachte an eine Fehlervermeidung mit ISTFEHLER; aber irgendwie haut das nicht so hin?!?
Gruß Matthias

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zusätzliche Info
21.03.2006 22:18:17
Matthias
Hallo,
was ich noch anmerken wollte:
ich möchte die Fehlermeldung "#DIV/0!" vermeiden die erscheint, wenn die Zahl in "VAR!RC" & intZaehler" eine Null ist, die ich durch "VAR!RC" & intNenner" teile! Durch welchen Befehl kann ich dies in VBA verhindern?
Gruß Matthias
AW: Zusätzliche Info
21.03.2006 22:27:02
Sigi
Hallo Matthias,
da reicht doch ein ´"If ... then ... else ..."
If VAR!RC = 0 OR intZaehler = 0 then
'dies
else
'deine Formel
endif
Gruß
Sigi
Klappt nicht!
21.03.2006 22:40:49
Matthias
hallo,
ich habs so umgebaut, aber irgendwie wills nicht klappen:
For i = 0 To UBound(Arr)
If "VAR!RC" & intZaehler = 0 Or "VAR!RC" & intNenner = 0 Then
shVARCOL.Cells(Arr(i), intSpalteVARCOL).FormulaR1C1 = 0
Else
shVARCOL.Cells(Arr(i), intSpalteVARCOL).FormulaR1C1 = _
"=VAR!RC" & intZaehler & "/VAR!RC" & intNenner & " -1"
End If
Next i
wo liegt da der Fehler?
Anzeige
AW: Klappt nicht! Und das ist auch kein Wunder...
22.03.2006 03:53:20
Luc:-?
..., Matthias!
Was soll denn bei If "VAR!RC" & intZaehler = 0 Or "VAR!RC" & intNenner = 0 Then herauskommen? Wenn die Variablen intZaehler und intNenner beide bspw den Wert 0 haben, würde der If-VglBefehl so lauten:
If "VAR!RC0" = 0 Or "VAR!RC0" = 0 Then
Man sieht wohl sehr deutlich, dass du fragst, ob 2 Zeichenketten jeweils den Wert 0 haben! Egal, was in deinen Variablen steht, dieser Vgl ist immer True oder führt zu einem Datentypfehler.
Des weiteren entnehme ich deinem VBA-Versuch, dass es offensichtlich nicht unbedingt erforderlich ist, eine Formel in die Zellen einzutragen, sonst könntest du auch im Falle von 0 nicht auf eine verzichten. Wenn du nicht auf die Formel verzichten willst, muss das Prüfen des Nenners nicht des Zählers (der kann wie allgemein bekannt jeden Wert haben - 0/0 ist genauso verboten wie 1/0, aber 0/1=0) in der in die Zellen einzutragenden Formel erfolgen. Ansonsten kannst du ganz auf den Formelkram verzichten, alles in VBA ausrechnen und nur das Ergebnis eintragen. Du solltest dich mal etwas intensiver mit der VBA-Online-Hilfe befassen ({F1} im Editor), bevor du dich mit so etwas befasst (Referenzierung von Zellen). Übrigens ist die Verwendung der Z1S1(=R1C1)-Schreibweise nur sinnvoll, wenn dein xl auch darauf eingestellt ist. Du musst hier den Recorder nicht kopieren. Deutsche Formeln weist man ...FormulaLocal, englische ...Formula zu. Um Zellen zu referenzieren, verwendet man entweder Cells(...) mit Zeilen- und/oder Spaltenindex oder Range("...") mit Bereichsangabe als Text.
Wenn du dir dann überlegt hast, was du eigentlich machen willst, kannst du dich ja wieder melden. Dein Problem ist auch für einen VBA-Anfänger eine ziemlich leichte Übung. Allerdings sollte der dann auch schon ein gewisses Programmierverständnis haben.
Alternativ kannst du dir ja auch, da du ja wenigstens in xl GUT sein willst, eine fkt xlFormel zusammenbauen, die #DIV/0! berücksichtigt (z.B. mit WENN) und die dann als Text der entsprechenden Zelleneigenschaft zuweisen (Verdopplung "" interner " beachten!).
Gruß Luc :-?
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige