Bon je viens vite fait de faire un test chez moi.
Voici le genre de code que tu dois mettre pour tester si tous les controles TEXTBOX sont bien différents de vide.
Code:
Private Sub Form_Unload(Cancel As Integer)
Dim ctrl As Control
For Each ctrl In Me.Controls
'je recherche que les controles de type Textbox
If TypeOf ctrl Is TextBox Then
'si le controle est vide alors je sors de la boucle
'et j'empeche la fermeture de la form
If ctrl.Text = "" Then
Cancel = 1
'message informant d'une erreur
MsgBox "Vous devez remplir tous les champs obligatoires.",,"Erreur de saisie"
Exit For
End if
End If
Next ctrl
End Sub
Voila qui devrait répondre à ta demande.
Cette méthode teste tous les controles de la form et si c'est une textbox elle vérifie que la textbox n'est pas vide, si tel est le cas à la première rencontrée elle sort de la boucle et ne ferme pas la fenêtre.
Bien entendu tu peux mettre un message à l'aide d'une msgbox avant le Exit For.