objektvariable oder WIth-Blockvariable nicht festgelegt
16.04.2020 16:19:24
peter
ich bin am verzweifeln. Ich weiß nicht wo mein fehler liegt. Bitte um Hilfe. Ich habe eine Userform erstellt mit einer Combobox zwei Textfeldern und einem Button. Die Items der Combobox stammen aus Spalte 1 der Tabelle "Übersicht". Im Worksheet "Übersicht" sind Dokumentennummer (Spalte 1) und die dazugehörigen Dokumententitel (Spalte 2) tabellarisch aufgeführt. Wenn ich die Dokumenten-Nummer über die Combobox auswähle soll im nebenstehenden Textfeld der Dazugehörige Titel erscheinen und das zweite Textfeld freigegeben werden mit Klick auf den Button sollen die Werte dann in eine andere Tabelle übertragen werden.
Das funktioniert zwar alles wunderbar, leider kommt am Ende - nachdem ch den Button betätige - eine Fehlermeldung. Es heißt: Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt. Es wird die Code-Zeile "dokTitel = .Cells(Columns(1).Find(dokNummer).Row, 2)", welche ich im folgenden Fett und Kursiv dargestellt habe markiert.
Vielen Dank schon mal im Voraus. Ich wäre echt sehr dankbar dafür den fehler zu finden.
Viele Grüße
Peter Meier
Option Explicit
Dim dokNummer As String
Dim dokTitel As String
Private Sub UserForm_Initialize()
Dim letzteZeile As Integer
Dim i As Integer
'LetzteZeile der Spalte A ermittlen
letzteZeile = Sheets("Übersicht").Cells(Rows.Count, 1).End(xlUp).Row
'Alle Einträge der Spalte A zu Kombinationsfeld hinzufügen
For i = 3 To letzteZeile
cbNummer.AddItem Sheets("Übersicht").Cells(i, 1)
Next i
End Sub
Private Sub cbNummer_Change()
'Den zur ausgewählten Dokumentennummer zugehörigen Dokumentennamen finden
dokNummer = cbNummer.Text
With Worksheets("Übersicht")
dokTitel = .Cells(Columns(1).Find(dokNummer).Row, 2)
End With
txtTitel.Text = dokTitel
'großes Textfeld für Eingaben zulassen
txtTextbox.Enabled = True
txtTextbox.Locked = False
End Sub
Private Sub CommandButtonAbsenden_Click()
Dim ersteFreieZeile As Integer
Dim eingabe As String
If cbNummer.Text = "" Then
MsgBox "Bitte Dokumenten-Nummer auswählen"
cbNummer.SetFocus
Exit Sub
End If
If txtTextbox.Text = "" Then
MsgBox "Bitte Text eingeben"
txtTextbox.SetFocus
Exit Sub
Else
'Nächste freie Zeile suchen
ersteFreieZeile = Sheets("Dokumenten Änderung").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Dokumentennummer in Tabelle schreiben
eingabe = txtTextbox.Value
With Sheets("Dokumenten Änderung")
.Cells(ersteFreieZeile, 1) = dokNummer
.Cells(ersteFreieZeile, 2) = dokTitel
.Cells(ersteFreieZeile, 3) = Date
.Cells(ersteFreieZeile, 4) = Application.UserName
.Cells(ersteFreieZeile, 5) = eingabe
End With
txtTextbox.Text = ""
cbNummer.Text = ""
txtTitel.Text = ""
MsgBox "Änderungsvorschlag eingereicht"
End If
End Sub