Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Laufzeitfehler 91

Forumthread: VBA Laufzeitfehler 91

VBA Laufzeitfehler 91
30.10.2024 11:44:13
axel_
Hallo zusammen,
ich habe einen Fehler, dessen Grund ich nicht finden kann.

Ich habe eine Userform in der ich für eine Rechnung in einer Tabelle das Eingangsdatum und den Eingangsort (Konto/Barkasse) eintragen kann. Damit eine bereits eingetragene Rechnung kein zweites Mal verbucht werden kann, habe ich eine kleine Hürde angelegt. Wenn die Rechnung erstellt wird, wird anstelle von Konto/Barkasse "Eingang auf" in der entsprechenden Zeile eingetragen. Wenn eine Rechnungsnummer dann über mein Userform ausgewählt wird, wird zunächst geprüft, ob dieser Text dort noch zu finden ist oder Konto/Barkasse eingetragen wurde. Wenn die Rechnung noch nicht verbucht wurde, klappt auch alles. Wenn sie bereits verbucht wurde, kommt nach der MsgBox immer der Fehler 91 angezeigt. Dabei markiert er mir die Zeile "If rng.Offset(, 3).Value = "Eingang auf?" Then" als Fehlerquelle. Diese Zeile wurde doch aber schon durchschritten, wenn die MsgBox angezeigt wird?




Private Sub ComboBox_Belegnummer_Change()

Dim rply As String
Dim rng As Range

rply = Format(ComboBox_Belegnummer.Value, "00000")
Set rng = Range("TB_Einnahmen[Rechnung-Nr.]").Find(rply, , xlValues, xlPart)

If rng.Offset(, 3).Value = "Eingang auf?" Then
TextBox_Betrag.Value = Format(rng.Offset(, 2).Value, "€ 0.00")
Else
MsgBox ("Rechnung wurdebereits verbucht")
ComboBox_Belegnummer.Clear
End If

End Sub



Für Tipps wäre ich dankbar.
VG
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Laufzeitfehler 91
30.10.2024 11:54:39
Onur
Bei Find musst du immer damit rechnen, dass NIX gefunden wird, was zu einem Fehler führt, wenn du diesen Fall nicht abfängst.
Bei "nix gefunden" ist rng = Nothing und es gibt keinen Offset zu Nothing.
If not rng is nothing

If rng.Offset(, 3).Value = "Eingang auf?" Then
TextBox_Betrag.Value = Format(rng.Offset(, 2).Value, "€ 0.00")
Else
MsgBox ("Rechnung wurdebereits verbucht")
ComboBox_Belegnummer.Clear
End If
End If
Anzeige
AW: VBA Laufzeitfehler 91
30.10.2024 12:01:21
JoWE
Hallo,
gehe mit F8 schrittweise durch den Code (evtl. darin auch zuvor ein STOP einfügen),
prüfe dann in jedem Schritt, ob die Variablen korrekt besetzt werden/wurden.
Gruß
Jochen
AW: VBA Laufzeitfehler 91
30.10.2024 12:22:40
axel_
Ok, ich glaub ich habe den (Denk)Fehler doch noch gefunden. Lösung: Bei einer Änderung (Change) der ComboBox wurde der Sub durchlaufen. Im letzten Schritt Cleare ich die ComboBox. Damit wird sie ja wieder geändert und der Sub durchläuft nochmal wieder und die Antwort (rply) ist Nothing. Ich habe somit einen Sub geschrieben, der sich nach der Beendigung von "else" wieder selbst durchläuft.
Anzeige
AW: VBA Laufzeitfehler 91
30.10.2024 12:01:20
axel_
Hallo Onur, Danke zunächst für deine Antwort. Dass nichts gefunden wird, kann bei meiner Programmierung nicht passieren, da die Rechnungsnummer über eine ComboBox eingetragen wird und als Source die Tabelle selbst dient. Der Suchtext muss also existent sein. VG
AW: VBA Laufzeitfehler 91
30.10.2024 12:04:24
Onur
Dann solltest du mal die Datei posten.

Was zeigt denn die Variable rng an, wenn du im Editor zum Zeitpunkt des Fehlers danach schaust? Gib mal im Direktfenster das ein:
? rng.Address
Was kommt dabei raus?
Anzeige
AW: VBA Laufzeitfehler 91
30.10.2024 12:16:53
axel_
Ich habe die Datei mal stark gekürzt hier eingetragen: https://www.herber.de/bbs/user/173303.xlsm (Auf den anderen Blättern sind sensible Daten)

Im Direktfenster sagt er mir bei der Adressabfrage, dass die Verwendung unzulässig wird
AW: VBA Laufzeitfehler 91
30.10.2024 12:23:24
Onur
Eine Datei, die so stark gekürzt wurde, dass sie nicht mehr lauffähig ist, bringt gar nix.
Teste doch mal deine gekürzte Datei und versuche damit den Fehler zu provozieren !
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige