Hallo!
Wenn ich die UserForm über einen in einem Tabellenblatt eingebetteten CommandButton aufrufe und dort auf der UserForm den „Schließen“-Button betätige, bekomme ich die Fehlermeldung Objektvariable nicht definiert, Laufzeitfehler 91 an der ersten Stelle im Makro „Dialogaufrufen“, in der die UserForm angesprochen wird. Kann mir jemand bei dem folgenden code helfen? Danke!
Dies ist der Code der Userform:
Private Sub CommandButton1_Click()
’ Übergabe der Daten in das Formular
On Error Resume Next
Worksheets(„Inhaltsverzeichnis“).Range(„Mandant“).Value = txtMandant.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Mandantnr“).Value = txtMandantnr.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Bearbeiter“).Value = txtBearbeiter.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Jahresabschluss“).Value = txtJahresabschluss.Value
usf_Daten.Hide
End Sub
Private Sub CommandButton2_Click()
’ Leeren der einzelnen Felder bei Anklicken des „Eingaben verwerfen“-Buttons (CommandButton2).
txtMandant.Value = „“
txtMandantnr.Value = „“
txtBearbeiter.Value = „“
txtJahresabschluss.Value = „“
Worksheets(„Inhaltsverzeichnis“).Range(„Mandant“).Value = txtMandant.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Mandantnr“).Value = txtMandantnr.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Bearbeiter“).Value = txtBearbeiter.Value
Worksheets(„Inhaltsverzeichnis“).Range(„Jahresabschluss“).Value = txtJahresabschluss.Value
End Sub
Private Sub CommandButton3_Click()
usf_Daten.Hide ’ Call UserForm_Click ’ Aufruf der Prozedur und damit verbergen des Formulars.
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label3_Click()
End Sub
Private Sub UserForm_Initialize()
Load usf_Daten 'Die Maske für die Eingabe der persönlichen Daten wird geladen.
usf_Daten.Show 'und hiermit angezeigt.
End Sub
’ Dies ist das Click-Ereignis für Formular und verbirgt es wieder.
Private Sub UserForm_Click()
usf_Daten.Hide
End Sub
Und dies der Code für die im Tabellenblatt „Inhaltsverzeichnis“ eingefügten Button:
Private Sub CommandButton1_Click()
DialogAufrufen
End Sub
Und dies das Makro für den Dialog:
Sub DialogAufrufen()
Dim Mandant As String
Dim Mandantnr As String
Dim Jahresabschluss As String
Dim Bearbeiter As String
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
'Alle Änderungen sollen sich auf das Fenster beziehen, von dem aus der Dialog
'gestartet wurde: Definition des Startfensters (öffentliche Variable)
StartFenster = ActiveSheet.Name
’ Vorhandene Einträge auslesen
Mandant = Worksheets(„Inhaltsverzeichnis“).Range(„Mandant“).Value
Mandantnr = Worksheets(„Inhaltsverzeichnis“).Range(„Mandantnr“).Value
Jahresabschluss = Worksheets(„Inhaltsverzeichnis“).Range(„Jahresabschluss“).Value
Bearbeiter = Worksheets(„Inhaltsverzeichnis“).Range(„Bearbeiter“).Value
'Einträge in Dialogfelder schreiben
usf_Daten.txtMandant.Value = Mandant
usf_Daten.txtMandantnr.Value = Mandantnr
usf_Daten.txtJahresabschluss.Value = Jahresabschluss
usf_Daten.txtBearbeiter.Value = Bearbeiter
'Dialog einblenden
usf_Daten.Show
Application.ScreenUpdating = True
End Sub