Annuler l'action de Me.hide et Unload Me sur VBA

Bonjour à tous.

Voila en fait je dois créer un test de personnalité avec des checkbox de forme "Je suis plutôt" "ou plutôt" et j'aimerais créer une macro où si l'on a pas coché tous les choix de réponses un MsgBox apparait pour nous dire qu'il faut tout compléter.

Le soucis c'est que quand je fais ça et que je clique sur valider en admettant que je n'ai pas tout rempli, et bien le MsgBox apparait mais mon userform et les résultats incomplets apparaissent dans la base de données que j'ai créé.

Voici ma macro en l'état actuel

Private Sub Valider_Click()
' cette sub assure le transfert des données du userform vers la table excel

Dim Rng As Range
Dim NoLigne As Integer

'On effectue le transfert pour déterminer à quelles types de dominantes on appartient
With ThisWorkbook.Worksheets("BDD")

       NoLigne = .Range("DebZon_BDDeval").CurrentRegion.Rows.Count + 1

  If ChkVisageAnime.Value = False And ChkVisageFerme.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkDominant.Value = False And ChkAccommodant.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkEntreprenant.Value = False And ChkObeissant.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkActif.Value = False And ChkReflechi.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkFerme.Value = False And ChkConciliant.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkBavard.Value = False And ChkSilencieux.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkRefAuxPersonnes.Value = False And ChkRefALaTache.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkExpansif.Value = False And ChkReserve.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkJovial.Value = False And ChkSerieux.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"

 ElseIf ChkBcpDeGestes.Value = False And ChkPeuDeGestes.Value = False Then
 MsgBox "Veuillez répondre à toutes les questions"      

End If

    If TxtFstColumn < 6 And TxtSndColumn < 6 Then
       .Cells(NoLigne, 5) = "Contrôlant"
       .Cells(NoLigne, 6) = UF_TDP.TxtFstColumn.Caption
       .Cells(NoLigne, 7) = UF_TDP.TxtSndColumn.Caption
      ElseIf TxtFstColumn < 6 And TxtSndColumn > 5 Then
          .Cells(NoLigne, 5) = "Analysant"
          .Cells(NoLigne, 6) = UF_TDP.TxtFstColumn.Caption
          .Cells(NoLigne, 7) = UF_TDP.TxtSndColumn.Caption
          ElseIf TxtFstColumn > 5 And TxtSndColumn > 5 Then
             .Cells(NoLigne, 5) = "Facilitant"
             .Cells(NoLigne, 6) = UF_TDP.TxtFstColumn
             .Cells(NoLigne, 7) = UF_TDP.TxtSndColumn.Caption
             ElseIf TxtFstColumn > 5 And TxtSndColumn < 6 Then
                .Cells(NoLigne, 5) = "Promouvant"
                .Cells(NoLigne, 6) = UF_TDP.TxtFstColumn
                .Cells(NoLigne, 7) = UF_TDP.TxtSndColumn.Caption

    End If
End With

Me.Hide
Unload Me
MsgBox "Vos données ont bien été prises en compte et ont été enregistré dans la base de donnée", vbExclamation, strValidationapp
End Sub

Vous voyez ? il faudrait que je puisse annuler me.Hide et unload Me et le msgbox lorsqu'on valide mais que les deux checkbox sont False ! J'aimerais un genre de Me.stay...

Un GRAND MERCI à ceux qui m'aideront

C'est bon j'ai trouvé, en fait c'est la fonction .setfocus qui fait tout !

Pour ceux qui un jour galèrent, voila la formule que j'ai appliqué à toutes les checkbox

If Not (ChkVisageAnime Or ChkVisageFerme) Then
MsgBox "Veuillez compléter toutes les questions", vbExclamation
ChkVisageAnime.SetFocus
Rechercher des sujets similaires à "annuler action hide unload vba"