Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1752to1756
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

objektvariable oder WIth-Blockvariable nicht festgelegt

objektvariable oder WIth-Blockvariable nicht festgelegt
16.04.2020 16:19:24
peter
Hallo zusammen,
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

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

Betreff
Datum
Anwender
Anzeige
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
16.04.2020 17:29:02
onur
Versuch das:
.Columns(1)

AW: objektvariable oder WIth-Blockvariable nicht festgelegt
17.04.2020 09:05:36
peter
Hallo,
erstmal danke für die schnelle Antwort. Ich habe jetzt folgendes eingegeben:
dokTitel = .Cells(.Columns(1).Find(dokNummer).Row, 2)
Leider immer noch dieselbe Situation. Sub-Ausführung über Click_Button funktioniert prinzipiell (Alle Werte werden in Tabelle geschrieben), aber Fehlermeldung unverändert. "Objektvariable oder With-Blockvariable nicht festgelegt."
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
21.04.2020 09:59:54
peter
kann mir jemand weiterhelfen? Ich habe wohl das Kontrollkästchen nicht markiert, dass der Beitrag noch nciht beantwortet wurde. Sry bin neu hier.
Anzeige
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
21.04.2020 15:16:55
Hajo_Zi
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

AW: objektvariable oder WIth-Blockvariable nicht festgelegt
22.04.2020 08:48:55
peter
Hallo Hajo,
kein Problem, hier die Datei: https://www.herber.de/bbs/user/136955.xlsm
Es wäre sehr nett wenn ich einen Tipp bekommen würde.
viele Grüße
Anzeige
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
22.04.2020 12:56:32
Hajo_Zi
ich würde mal vermuten Find ist zu kurz. Ich benutze
Set Rafound = .Columns(4).find("Ha", .Range("D1"), , xlPart, , xlNext)
Gruß Hajo
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
22.04.2020 13:32:13
peter
Hallo Hajo,
danke erstmal. wie würden Sie das in den Code einbauen? Was ich nicht verstehe ist, dass das Makro trotz der erscheinenden Debugger-Meldung komplett ausgeführt wird.
Klicke ich auf den Button "Vorschlag Dokumentenänderung", wähle ich die Dokumenten-Nummer aus wird der zugehörige Titel automatisch in das nebenstehende Textfeld geladen. Unten gebe ich die Änderungswünsche für das Dokument in das große Textfeld ein.
Wenn ich auf den Button "Absenden" auf der Userform klicke dann werden alle Daten in das Arbeitsblatt "Dokumenten Änderung" geschrieben. Ich kann mir also garnicht erklären wo der Fehler eigentlich herkommt.
Es ist echt zum verzweifeln...
Anzeige
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
22.04.2020 16:07:55
Mullit
Hallo,
bau das hier mal in Dein Change-Event ein...
Private Sub cbNummer_Change()

'Den zur ausgewählten Dokumentennummer zugehörigen Dokumentennamen finden
If ActiveControl Is cbNummer Then

    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 If

End Sub

Gruß, Mullit
Anzeige
AW: objektvariable oder WIth-Blockvariable nicht festgelegt
22.04.2020 16:16:07
peter
Ein Traum! Mullit du bist klasse. Danke
AW: ah prima, alles klar...owT
22.04.2020 16:37:47
Mullit

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige