Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1748to1752
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

Laufzeitfehler 91

Laufzeitfehler 91
02.04.2020 19:06:57
Patrick
Guten Abend liebe Excel/VBA Profi's
Allgemein vor Weg:
Das Projekt wird mit Sicherheit nicht 100% sauber geschrieben worden sein und bin daher über jeden Hinweis eurerseits dankbar !
Das Projekt und Problem:
Ich habe eine Ersatzteilliste erstellt (6 Tabellen), eine Startseite zur Navigation zur erleichterten Bedienung, sowie eine Bestand u. Bestellliste mit Filter (zum Ausdrucken der Liste). Da manche Ersatzteile für andere Baugruppen eingesetzt werden können, habe ich eine zentrale Tabelle (Bestand u. Bestellliste) erstellt und die Ersatzteile in den anderen Tabellen mit dieser verknüpft. Ich wollte damit bezwecken, dass egal wo ich gucke, immer die selbe Anzahl u. Bestellmenge angezeigt wird.
Zusätzlich zu den o.g. Tabellen habe ich mir eine Userform erstellt um die Lager und Bestelliste schnellstmöglich zu bearbeiten. Die Userform beinhaltet eine ListBox (dort wird die komplette Ersatzteilliste angezeigt) und eine Suchfunktion um die Liste zu filtern. Wenn man die Suchfunktion verwendet werden nun die dementsprechenden verbleibenden Treffer angezeigt und man kommt per Doppelklick in den "Bearbeitungsmodus". Dort kann man nun den Lagerbestand u. Bestellmenge bearbeiten und anschließend speichern (es sollte dann in der Tabelle übernommen werden).
Nun zum Problem: Wenn ich in der Suche "3-400-E" eingebe, es öffne, bearbeite und anschließend speichern möchte zeigt er mir folgenden fehler an:
Userbild
Userbild
Userform, ListBox und Suchfunktion:

Private Sub cmdschliessen_Click()
Unload Me
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
x = Me.ListBox1.ListIndex + 2
With bearbeiten
.Label5 = " " & CStr(ListBox1.List(ListBox1.ListIndex, 0))
.Label8 = " " & CStr(ListBox1.List(ListBox1.ListIndex, 1))
.TextBox1 = CStr(ListBox1.List(ListBox1.ListIndex, 2))
.TextBox2 = CStr(ListBox1.List(ListBox1.ListIndex, 3))
End With
Unload UserForm
bearbeiten.Show
End Sub
Private Sub TextBox1_Change()
Const STARTROW = 3
Dim i&, iCnt&, r&, c&
Dim sn, tmp
With Tabelle7
iCnt = .Range("A" & Rows.Count).End(xlUp).Row - STARTROW + 1
ReDim sn(1 To iCnt, 1 To 13)
For i = 1 To iCnt
tmp = .Range("A" & (i + 2) & ":F" & (i + 2))
If InStr(1, concat(tmp), TextBox1.Text) > 0 Then
r = r + 1
For c = 1 To UBound(tmp, 2)
sn(r, c) = tmp(1, c)
Next
End If
Next
ListBox1.List = sn
End With
End Sub
Private Function concat(ByVal arr, Optional ByVal delim$ = " ") As String
concat = Join(Application.Transpose(Application.Transpose(arr)), delim)
End Function
Private Sub UserForm_Initialize()
Dim lZeile As Long
search = ""
ListBox1.Clear
lZeile = 2
Do While Trim(CStr(Tabelle7.Cells(lZeile, 4).Value))  ""
With Me.ListBox1
.ColumnCount = 4
.ColumnWidths = "100; 380; 30; 30"
.AddItem
.List(ListBox1.ListCount - 1, 0) = Tabelle7.Cells(lZeile, 1).Text
.List(ListBox1.ListCount - 1, 1) = Tabelle7.Cells(lZeile, 2).Text
.List(ListBox1.ListCount - 1, 2) = Tabelle7.Cells(lZeile, 3).Text
.List(ListBox1.ListCount - 1, 3) = Tabelle7.Cells(lZeile, 4).Text
End With
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub

Bearbeitungsform:

Public Sub CommandButton1_Click()
Tabelle7.Unprotect
With Tabelle7
x = .Columns(1).Find(Trim(Label5.Caption)).Row
.Cells(x, 3) = TextBox1.Value
.Cells(x, 4) = TextBox2.Value
End With
Tabelle7.Protect
Unload Me
UserForm.Show
End Sub
Private Sub CommandButton2_Click()
Unload Me
UserForm.Show
End Sub
Private Sub SpinButton1_Change()
TextBox1.Text = SpinButton1.Value
End Sub
Private Sub SpinButton2_Change()
TextBox2.Text = SpinButton2.Value
End Sub
Private Sub TextBox1_Change()
If IsNumeric(TextBox1.Value) Then
SpinButton1.Value = TextBox1.Value
End If
End Sub
Private Sub TextBox2_Change()
If IsNumeric(TextBox2.Value) Then
SpinButton2.Value = TextBox2.Value
End If
End Sub
Private Sub bearbeiten_Initialize()
SpinButton1.SmallChange = 1
SpinButton2.SmallChange = 1
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 91
02.04.2020 19:26:12
AlterDresdner
Hallo Patrick,
wenn Du die Datei hochgeladen hättest oder
auf debuggen geklickt hättest und Dir den Fehler angeguckt hättest
könnte man besser helfen.
Da meine Glaskugel gerade zur Reparatur ist:
Ich vermute, dass der Fehler in
x = .Columns(1).Find(Trim(Label5.Caption)).Row
aausgelöst wird. Wenn Find nichts findet, gibt es .Row nicht.
Gruß der AlteDresdner
AW: Laufzeitfehler 91
02.04.2020 19:32:48
Patrick
Oh entschuldige bitte, ich wollte das Projekt eigentlich hochladen, vergessen.
Ich lade es mal schnell hoch.
https://www.herber.de/bbs/user/136357.xlsm
Gruß Patrick
Anzeige
AW: Laufzeitfehler 91
02.04.2020 19:50:43
Patrick
Laut debuggen ist es folgender Fehler:
x = .Columns(1).Find(Trim(Label5.Caption)).Row
Deine Vermutung war also korrekt. Wie könnte man das jetzt "umbauen"?
Gruß Patrick
AW: Laufzeitfehler 91
02.04.2020 19:34:11
onur
Du müsstest es eigentlich langsam wissen:
Eine Fehlermeldung ohne die Position des Fehlers ist nicht mal annähernd die halbe Miete.
Einfach mal "Debuggen" klicken statt zu vermuten, WO der Fehlert auftritt.
AW: Laufzeitfehler 91
02.04.2020 19:47:23
Patrick
Tut mir leid onur, dass ich es langsam noch nicht weiß, da dies mein erstes Projekt mit VBA ist.
Aber ich werde es mir hinter die Ohren schreiben, um mir solche Aussagen in Zukunft ersparen zu können.
Gruß
Anzeige
AW: Laufzeitfehler 91
02.04.2020 19:48:27
onur
Und - Wo ist jetzt denn der Fehler?
AW: Laufzeitfehler 91
02.04.2020 19:51:42
Patrick
Laut debuggen ist es folgender Fehler:
x = .Columns(1).Find(Trim(Label5.Caption)).Row

AW: Laufzeitfehler 91
02.04.2020 20:07:27
onur
Sorry, bei mir kommt kein Fehler.
AW: Laufzeitfehler 91
02.04.2020 20:39:57
Patrick
Ich habe den Fehler jetzt glaube ich selbst gefunden, es hat glaube mit dem autom. Filter meines Blattes zu tun !
AW: Laufzeitfehler 91
02.04.2020 20:53:26
Patrick
Also Thema hat sich geklärt: Es lag an dem automatischen Filter, dadurch konnte das Script die Zeile nicht finden. Habe es jetzt hinbekommen.
Gruß Patrick

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige