Condition dans une autre condition VBA

Bonjour,

Je débute tout juste en VBA et je coince sur le développement de ma macro. Je dois réaliser une vérification de valeur et en fonction du résultat je ne scrute pas le même code.

Pour être plus explicite, j'aimerais que:

If nombre_AM >= 2 And nombre_PM <= 5 'alors
If MsgBox("Attention, au minimum 2 MATIN mais pas plus de 5 APRES-MIDI n'ont été trouvés. Voulez-vous quitter ?", vbYesNo, "Excel") = vbYes Then
Worksheets("Feuil2").Range("D1") = "ERREUR DE PLANNING"
Exit Sub
else
Sheets.Add After:=Worksheets(2)
ActiveSheet.Name = "Nouveau planning"
Worksheets(1).Select

Si la condition initiale (nombre_AM >= 2 And nombre_PM <= 5) n'est pas respectée alors on applique quand même le code suivant:

Sheets.Add After:=Worksheets(2)
ActiveSheet.Name = "Nouveau planning"
Worksheets(1).Select

Il s'agit ici d'un exemple, je l'adapterai à mon projet mais les 2 conditions me posent souci.

Un grand merci à celles et ceux qui pourront me proposer une solution :)

PS: Je poste le fichier ici, pour lancer la macro il faut cliquer sur le bouton bleu dans la Feuil1

JB

Bonsoir

Juste une erreur de condition :

If nombre_AM >= 2 Or nombre_PM <= 5 Then

au lieu de :

If nombre_AM >= 2 And nombre_PM <= 5 then

C'est un "ou" qu'il faut, pas un "et".

Bonsoir yal_excel,
Merci pour votre retour, seulement c'est bien la condition ET que je souhaite utiliser: Je vais simplifier ma demande si vous préférez:

* Si [nombre_AM >= 2 And nombre_PM =0] alors on ouvre un msgbox YesNo qui nous demande si on veut quitter ou non (voir msgbox ci-dessous)

*Si l'utilisateur clique sur Oui alors:

Worksheets("Feuil2").Range("D1") = "ERREUR DE PLANNING"
Exit Sub

*Si l'utilisateur clique sur Non et dans tous les autres cas où la condition [nombre_AM >= 2 And nombre_PM =0] n'est pas vraie:

Sheets.Add After:=Worksheets(2)
ActiveSheet.Name = "Nouveau planning"
Worksheets(1).Select

*Msgbox à intégrer:

MsgBox("Attention, au minimum 2 MATIN ont été trouvés et aucun APRES-MIDI. Voulez-vous quitter ?", vbYesNo, "Excel")

J'ai dû partir sur une mauvaise base, auriez-vous une autre piste s'il vous plait ?

Merci beaucoup en tout cas :)

JB

bonsoir,

si j'ai bien compris

  If nombre_AM >= 2 And nombre_PM = 0 Then 'alors
        If MsgBox("Attention, au minimum 2 MATIN ont été trouvés et aucun APRES-MIDI. Voulez-vous quitter ?", vbYesNo, "Excel") = vbYes Then
             Worksheets("Feuil2").Range("D1") = "ERREUR DE PLANNING"
             Exit Sub
        End If
    End If
    Sheets.Add After:=Worksheets(2)
    ActiveSheet.Name = "Nouveau planning"
    Worksheets(1).Select

Bonsoir h2so4,

C'est parfait, cela correspond à mes besoins. Merci à vous et à Yal_excel également.

Bonne soirée

JB

Rechercher des sujets similaires à "condition vba"