Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
916to920
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
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

.Dependents is Nothing

.Dependents is Nothing
19.10.2007 14:06:00
Andi
Hi,
ich hätte mal eine Frage zur Dependents-Eigenschaft:
ich kann mir ja mit
MsgBox Target.DirectDependents.Address
anzeigen lassen, welche Formel durch eine Eingabe neu berechnet wird. Wenn jetzt aber das Target gar keine Nachfolgerzellen hat, dann gibt's nen Laufzeitfehler 1004, 'Keine Zellen gefunden'.
Alle Versuche, dies abzufangen, sind bisher fehlgeschlagen,
If Not Target.DirectDependents Is Nothing Then
produziert den gleichen Laufzeitfehler. Eine HasDependents-Eigenschaft oder sowas hab ich auch nicht gefunden.
On Error Resume Next is mir irgendwie zu schlampig programmiert.
Weiß jemand Rat?
Schönen Gruß,
Andi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .Dependents is Nothing
19.10.2007 14:16:00
Wolli
Hallo Andi, nicht schön aber selten:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
MsgBox Target.DirectDependents.Address
End Sub


Gruß, Wolli

AW: .Dependents is Nothing
19.10.2007 14:20:00
Andi
Hi,
danke, das kenn ich, aber dieses
On Error Resume Next
mag ich eigentlich nicht. Mir isses lieber einen Fehler zu vermeiden, als ihn zu ignorieren. In größeren Projekten kann einem mit so einer Anweisung schnell alles um die Ohren fliegen.
Ich hoffe, Du nimmst es mir nicht übel, wenn ich die Frage auf 'noch offen' stelle.
Danke trotzdem,
Andi

Anzeige
AW: .Dependents is Nothing
19.10.2007 14:18:00
Daniel
Hi
mach doch folgendens:

dim Zelle as Range
on error resume next'--- Abbruch bei Fehler aus
set Zelle = target.directdependents
on error goto 0 '--- Abbruch bei Fehler wieder einschalten
if not Zelle is nothing then
usw


wenn nur der für den Teil des Codes, der den Fehler verursachen kann, das On ERROR RESUME NEXT angewendet wird und im Makro sauber auf beide möglichen Fälle reagiert wird, und der Fehlerfall im Makro sauber abgefangen wird, ist es meiner ansicht nach durchaus zulässig, mit ON ERROR zu arbeiten.
Ein pauschales On ERROR RESUME NEXT an den Anfang des Makors zu setzen, ist natürlich sehr schlampig, aber ein gezielter Einsazt, warum nicht?
Gruß, Daniel
ps. vielleicht funktioniert die Zuweisung an eine Range-Variable ohne Fehlerabbuch, auch wenn keine Zellen vorhanden sind. (ähnlich wie bei der Find-Funktion)
Dann kannst du dir das On ERROR auch sparen.

Anzeige
AW: .Dependents is Nothing
19.10.2007 14:24:50
Andi
Hi,
auch Dir danke.
Eine Zuweisung an eine Variable, also
Set c = Target.DirectDependents
ergibt leider den gleichen Fehler.
Wenn's wirklich keine andere Möglichkeit gibt, dann bin ich natürlich auch mit einer gezielt eingesetzten On Error Anweisung zufrieden. Es wundert mich allerdings, dass VBA keine Möglichkeit bietet, dies sauber abzufangen.
Schönen Gruß,
Andi

AW: .Dependents is Nothing
19.10.2007 14:29:00
Daniel
ja, leider ist VBA nicht perfekt!
wichtig ist halt, daß man das On ERROR RESUME NEXT schnellstmöglich wieder deaktiviert.
Gruß, Daniel

Bei "Schlampiger Programmierung" hilft nur...
19.10.2007 14:21:02
NoNet
...ebenfalls "schlampig" zurück zu programmieren !
Hey Andi,
leider hat MS nicht für alle Eventualitäten eine funktionierende Plausibilitätskontrolle in VBA implementiert.
Im vorliegenden Fall trifft das leider auch zu, daher sehe ich keine Alternative als das allseits ungeliebte "On Error Resume Next" zu verwenden
Gruß, NoNet

Anzeige
AW: Bei "Schlampiger Programmierung" hilft nur...
19.10.2007 14:26:41
Andi
Alles klar,
danke für die eindeutige Aussage.
Wenn's nicht anders geht, dann geht's halt eben nicht anders.
Vielen Dank,
Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige