Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1640to1644
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
Inhaltsverzeichnis

VBA Laufzeitfehler '91': Objektvariable oder W...

VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 21:06:28
Mat
Hallo Experten, ich habe mal wieder ein Problem, was mir einige Nerven kostet.
Ich habe ein Formular angelegt, um neue Datensätze anzulegen. Darin habe ich einige Kombifelder und Textfelder.
Meine Idee ist es, dass ich in einem Kombifeld aus den vorhandenen Datensätzen, einen auswähle und die restlichen Felder auf Basis des gewählten Datensatzes automatisch gefüllt werden. Leider bekomme ich immer folgenden Fehler
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt
und weiß überhaupt nicht, woher er kommt. Ich hatte den Fehler vorher schonmal, habe anschließend den Code geändert und er war weg. Nun habe ich das Formular an einem anderen Rechner gestartet und der Fehler war wieder da.
Folgend der Code der betreffenden Private Sub.
Wenn der Fehler erscheint, ist die Zeile
ActiveSheet.Range("E3:E1000").Find(What:=slctTest).Select
gelb hinterlegt.
Private Sub cmb_Tests_Change()
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False
Call Name_Ws
slctTest = cmb_Tests.Value
wsData.Activate
'Finden des Eintrags aus dem Kombifeld im Blatt Rohdaten /
'Schreiben der Zeilennummer in Variable
    ActiveSheet.Range("E3:E1000").Find(What:=slctTest).Select
Zeile = ActiveCell.Row()
'Formularfelder füllen
cmb_Prio.Value = Cells(Zeile, 6).Value
txt_Testzeit.Value = Cells(Zeile, 10).Value
txt_Beschreibung1.Value = Cells(Zeile, 38).Value
txt_Beschreibung2.Value = Cells(Zeile, 39).Value
Range("A1").Select
wsCp.Activate
'Bildschirmaktualisierung an
Application.ScreenUpdating = True
End Sub
Ich bin für jeden Tipp dankbar.
Gruß
Mat

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 21:46:10
Daniel
Hi
dann wurde dein Suchbegriff slctTest im Suchbereich nicht gefunden und es konnte der anschließende Select-Befehl nicht ausgeführt werden.
Ein Problem in deinem Code ist, dass die .Find-Funktion eine ganze Reihe von Parametern hat (alle eingeabemöglichkeiten, die du in der Menüfunktion SUCHEN hast) und du nur einen einzigen (what) fest vorgibst.
Dabei haben auch die anderen Parameter einen Einfluss darauf, ob der Suchbegriff gefunden werden kann (insbesondere lookat und lookin).
Diese solltest du auf jeden Fall mit angeben.
Anderenfalls wird die Einstellung der zuletzt gemachten Suche des Anwenders verwendet, was dann dazu führen kann, dass es mal funktioniert und mal nicht, je nachdem wie zuletzt gesucht wurde.
Gruß Daniel
Anzeige
AW: VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 22:43:25
onur

dim rng as range
'Finden des Eintrags aus dem Kombifeld im Blatt Rohdaten /
'Schreiben der Zeilennummer in Variable
set rng=ActiveSheet.Range("E3:E1000").Find(What:=slctTest)
ActiveSheet.Range("E3:E1000").Find(What:=slctTest).Select
......

Setze direkt hinter der Zeile mit "Set ..." einen Haltepunkt und lese im Debugger rng aus.
Ich schätze, dass rng leer ist und dein Select-Befehl "ins Leere greift".
AW: VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 23:43:04
Mat
Guten Abend.
Ich danke Euch Beiden wie verrückt. Habe Daniels Tipp beherzigt und die beiden Suchargumente noch angegeben. Seitdem funktioniert alles bestens.
Nochmals Danke und viele Grüße
Mat
Anzeige
AW: VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 22:44:33
onur

dim rng as range
'Finden des Eintrags aus dem Kombifeld im Blatt Rohdaten /
'Schreiben der Zeilennummer in Variable
set rng=ActiveSheet.Range("E3:E1000").Find(What:=slctTest)
ActiveSheet.Range("E3:E1000").Find(What:=slctTest).Select
......

Setze direkt hinter der Zeile mit "Set ..." einen Haltepunkt und lese im Debugger rng aus.
Ich schätze, dass rng leer ist und dein Select-Befehl "ins Leere greift".
AW: VBA Laufzeitfehler '91': Objektvariable oder W...
04.09.2018 22:46:46
onur
Ich meinte natürlich: lies rng aus, wenn der Fehler auftritt (ohne Haltepunkt).

38 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige