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 réfé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.