Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA: UserForm-Aufruf - Fehler
#1
Guten Abend zusammen,

habe eine UserForm welche ich gerne in einer If-Bedingung aufrufen möchte - hier der Code:

Code:
Private Sub cmdEintragen_Click()
Dim lastZeile As Long
Dim Gefunden As Range
Dim lastSpalte As Long
Dim Rng As Range

lastZeile = Tabelle10.Cells(Rows.Count, 2).End(xlUp).Row + 1              'Sucht die nächstfreie Zeile in Tabelle10
Set Gefunden = Tabelle15.Range("1:1").Find(frmÜbungHinzufügen.cboWiderstand.Value, , xlValues, xlWhole)         'Sucht nach dem Wert welcher beim Hinzufügen der Übung eingegeben wurde.
lastSpalte = Tabelle15.Cells(1, Columns.Count).End(xlToLeft).Column + 1
Set Rng = Tabelle15.Cells(1, lastSpalte).Resize(2, lastSpalte)

'Trägt die Eingaben in die nächst-freie Zeile ein
With Tabelle10
  .Cells(lastZeile, 2).Value = frmÜbungHinzufügen.txtÜbungsname.Value
  .Cells(lastZeile, 3).Value = frmÜbungHinzufügen.cboWiderstand.Value
  .Cells(lastZeile, 4).Value = frmÜbungHinzufügen.cboZusatzequipment.Value
End With

'Wenn der eingegebene Widerstand nicht gefunden wird, wird er automatisch in die Datenbank eingetragen
If frmÜbungHinzufügen.cboWiderstand.Text = "Körpergewicht" Then
  Unload frmÜbungHinzufügen
 
ElseIf Gefunden Is Nothing Then
  MsgBox "Der eingegebene Widerstand ist noch nicht in der Gewichts-Datenbank vorhanden und wird dort automatisch hinzugefügt.", vbInformation + vbOKOnly, "Widerstand nicht vorhanden!"
     
  Tabelle15.Activate
  Application.CutCopyMode = False
  Tabelle15.ListObjects.Add(xlSrcRange, Cells(1, lastSpalte), , xlYes).Name = "TabelleNeu" 'Benennt die Tabelle anfangs in "TabelleNeu"
  Range("TabelleNeu[[#All],[Spalte1]]").Select                              'Markiert die gesamte neue Tabelle
  ActiveSheet.ListObjects("TabelleNeu").TableStyle = "Gewichts-Tabelle"     'Setzt den Tabellenstil auf Header: gelb
  Range("TabelleNeu[[#Headers],[Spalte1]]").Select
  ActiveCell.FormulaR1C1 = frmÜbungHinzufügen.cboWiderstand.Value           'Beschreibt den Header der Tabelle mit dem Namen des Widerstands
     
  frmNeueGewichteHinzufügen.Show
     
End If

End Sub

Ich habe im Schritt vorher schon ein UserForm (frmÜbungHinzufügen), welches dann bei Klick auf einen Button ein Suchereignis auslöst. Wenn der gesuchte String nicht vorhanden ist, sollen die Schritte ab "ElseIf" durchgelaufen werden. Wenn ich nun Schritt für Schritt durchgehe, kommt an der Show-Stelle (frmNeueGewichteHinzufügen.Show) der Fehler: Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht definiert.

An und für sich ist der Fehler klar, aber ich habe ja weder die UserForm nicht als Variable deklariert noch habe ich eine With-Anweisung hier drin...hat jemand eine Idee wie ich den Fehler lösen kann? Per se läuft das Makro nämlich perfekt, nur den Fehler wirft er aus obwohl eigentlich alles passen müsste...

Danke euch und schönen Abend,
Domi
Antworten Top
#2
Hallo Domi,

dann gibt es halt kein frmNeueGewichteHinzufügen.

Gruß Uwe
Antworten Top
#3
Hallo Uwe,

danke für deine immer geschätzte Antwort ;)

Habe die Lösung gefunden...hatte in einer "UserForm_Initialize"-Event gesagt, das frmNeueGewichteHinzufügen aufgerufen werden soll...das hat sich wohl mit der oben beschriebenen bzw. vom Debugger markierten Zeile gebissen...

Danke trotzdem, schönes Wochenende und schonmal frohe Weihnachten.
Bleib gesund!

Domi
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste