Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Laufzeitfehler 91

Betrifft: Laufzeitfehler 91 von: Johannes
Geschrieben am: 03.11.2014 22:19:07

Hallo,
ich prüfe mit nachfolgendem Code ob ein spezielles Control vorhanden ist. Das funktioniert einwandfrei wenn der Code aus einem Modul heraus aufgerufen wird. Wenn der Code über UserForm_Initialize aufgerufen wird, dann erhalte ich den Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt). Ich wäre über einen Tip froh warum Excel hier so reagiert bzw. wie ich den Code anpassen müsste, dass er über das Modul und UserForm_Initialize fehlerfrei ausgeführt werden kann.
Danke für eure Hilfe.
Gruß Joni

Public Function CheckIfControlExists(ByVal sUserFormName As String, ByVal sControlName As  _
String)
Dim compTMP As Object, ctrlTMP As Object

CheckIfControlExists = False

For Each compTMP In ActiveWorkbook.VBProject.VBComponents
    If LCase(compTMP.Name) = LCase(sUserFormName) Then
        For Each ctrlTMP In compTMP.Designer.Controls
            If LCase(ctrlTMP.Name) = LCase(sControlName) Then
                CheckIfControlExists = True
                Exit For
            End If
        Next
    End If
Next

End Function


  

Betrifft: AW: Laufzeitfehler 91 von: Gerd L
Geschrieben am: 03.11.2014 22:31:03

Hallo Johannes!

Keine Lösung, sondern ein Vorschlag. Probiere es mal mit dem UserForm_Activate
anstatt im ....Initialze .

Gruß Gerd


  

Betrifft: AW: Laufzeitfehler 91 von: Joni
Geschrieben am: 03.11.2014 23:40:20

Hallo Gerd,
hilft mir leider nicht weiter. Das Problem liegt daran, dass wenn der Aufruf aus der Userform heraus kommt diese mit Me angesprochen wird und über den Namen der Userform nicht erkannt wird. Ich habe zwischenzeitlich einen Workaround, eine richtige Lösung wäre mir dennoch sympatischer.
Danke
Gruß Joni


  

Betrifft: Bei mir gibt`s keinen Laufzeitfehler... von: {Boris}
Geschrieben am: 03.11.2014 23:49:27

Hi,

...will sagen: Der Code läuft auch im Initialize.
Kannst Du mal die Beispielmappe hochladen?

VG, Boris


  

Betrifft: AW: Bei mir gibt`s keinen Laufzeitfehler... von: Joni
Geschrieben am: 04.11.2014 00:11:03

Hallo Boris,
die Mappe kann ich leider nicht hochladen, da steht zu viel drin :-(. Ich bin aber auch schon wieder einen Schritt weiter. Das Problem tritt nur auf, wenn die Userform mit Hide in den Hintergrund verschoben und dann mit Show wieder angezeigt wird. D. h. beim 1. Mal ist das kein Problem weil ja noch jungfräulich, wenn die UF entladen wird dann ist der 2. Aufruf auch ohne Problem. Da ich die Eingaben aber nicht verlieren möchte entlade ich die UF nicht.
Gruß Joni


 

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 91"