Probleme avec une boucle macro

Résolu
Bonsoir à tous,

Voici un code que je n'arrive pas à faire marcher :

If CheckBox1.Value = False And CheckBox2.Value = False And CheckBox3.Value = False then
MsgBox "Vous devez valider au moins une case !", vbExclamation, "ERREUR"
controls("checkbox1").SetFocus
End If

Sheets("B").select
Userform2.Show

Lorsqu'aucune case n'est sélectionnée, le message apparait bien, mais quand je clique 'ok', il continu et affiche le 2ième userform. Alors que normalement il devrait revenir (rester) sur le userform !

Je doit pas être bien loiin.

Merci pour votre aide.

Manon
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Cela ne marche pas. Il me dit "else sans if". Mais merci quand même d'avoir tenté.

    Quelqu'un d'autre à une solution ?

    Je pense que cela doit venir de la ligne "control(checkbox).set focus".

    Merci de m'aider.

    Manon
    1. Au lieu de mettre un if pour tant controle de saisie met plutot un do while ... loop

      do while machin= faux and truc=false
      MsgBox "Vous devez valider au moins une case !", vbExclamation, "ERREUR"
      controls("checkbox1").SetFocus

      loop
      1. Je suis débutante et je n'ai jamais essayé "do while".... Donc pourrais-tu me donner un exemple concret ?

        Je voudrait simplement que le 2ième userform ne s'affiche pas, lorsque je clique sur "OK".

        Merci.
        1. Voici la bonne réponse,

          If CheckBox1.Value = False And CheckBox2.Value = False And CheckBox3.Value = False then
          MsgBox "Vous devez valider au moins une case !", vbExclamation, "ERREUR"
          Exit sub
          End If

          Sheets("B").select
          Userform2.Show

          Pour qui cela interresse.....

          @+ et bonne soiré à tous
          1. Salut,

            Entre End If et Sheets("B").select essaies exit sub et else

            End If
            exit sub
            else
            Sheets("B").select

            Bonne nuit à demain