Home
Home

---Soumis par Dev Ashish---

Form_Resize s'exécute après Form_Close pour un formulaire maximisé.

    Pour reproduire ce problème, créer un nouveau formulaire et y ajouter le code suivant, comme procédures événementielles:

Private Sub Form_Close()
    Debug.Print "Closing..."
End Sub

Private Sub Form_Resize()
   Debug.Print "Resizing..."
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Debug.Print "Unloading..."
End Sub

    Si le formulaire n'est pas maximisé, la séquence d'événements que vous devriez recevoir est:

   Resizing -> Unloading -> Closing

    Mais si le formulaire est maximimé, cela devient plutôt:

 Unloading -> Closing -> Resizing

    Ainsi, si vous reférez, dans la procédure événementielle Resize,  à un objet ou à une variable dont l'étendue (scope) est celle de la forme, vous risquez fortement de recevoir l'erreur  91 (Object variable or With block variable not set).

    Pour contourner cette erreur, définir une variable booléenne dans un module et ne parcourir l'événement  Resize seulement si cette variable est à vrai. Vous prenez soin de mettre cette même variable à faux dans la procédure événementielle du formulaire Close.