Boucle plusieurs si

Bonjour,

je fais appel à vos lumières car je ne m'en sors pas avec ma macro (je vous joins un fichier pour que ce soit plus parlant):

Je voudrais une boucle (de O5 à O130) qui lorsque le "Statut" (colonne O) est différent de "Annulée", "Finalisée" et "Vide", vérifie tout d'abord que la cellule correspondante dans la colonne "Fin réelle" (colonne M) est renseignée.

=> Si la cellue correspondante est renseignée, la macro vérifie que la date renseignée dans la cellule est inférieure à la date du jour et si c'est le cas une msg box s'affiche avec le texte "Date d'échéance dépassée".

=> Si la cellule correspondante n'est pas renseignée, la macro doit vérifier que la cellule correspondante dans la colonne "Fin planifiée" (colonne L) cette fois-ci est renseignée ou non.

=> Si elle est renseignée, la macro vérifie que la date renseignée est inférieure à la date du jour et si c'est le cas une msg box s'affiche avec le texte "Date d'échéance dépassée".

=> Si la cellule correspondante dans la colonne "Fin planifiée" (colonne L) n'est pas renseignée également, on ne fait rien et on passe à la ligne suivante

Est-ce envisageable de faire ça.

Voila ce que j'ai construit pour ma part mais ça ne fonctionne pas, du moins ça ne répond pas totalement à mon besoin:

Private Sub Workbook_Open()

For Each cellule In Range("M5:M130")

If cellule <> "" And cellule <= Date Then MsgBox (cellule.Offset(0, -1).Value & "Date d'échéance dépassée")

Next

If cellule = "" Then TestDate

End Sub
Sub TestDate()

For Each cellule In Range("L5:L130")

If cellule <> "" And cellule <= Date Then MsgBox (cellule.Offset(0, -1).Value)

Next

End Sub
4classeur1.xlsx (13.45 Ko)

Salut,

Je n’ai pas compris pourquoi ta boucle devait commencer qu’à la ligne 5, mais pourquoi pas.

Je ne suis pas certain d’avoir tout bien compris tes explications, alors regarde déjà ce que je te fournis en annexe et indique-moi ce qu’il manque.

Tu déclenches le code par le bouton en place sur la feuille.

Cordialement.

20classeur-v1.xlsm (25.29 Ko)
Yvouille a écrit :

Salut,

Je n’ai pas compris pourquoi ta boucle devait commencer qu’à la ligne 5, mais pourquoi pas.

Je ne suis pas certain d’avoir tout bien compris tes explications, alors regarde déjà ce que je te fournis en annexe et indique-moi ce qu’il manque.

Tu déclenches le code par le bouton en place sur la feuille.

Cordialement.

Bonsoir Yvouille

Merci de ton retour

Je suis actuellement sur une tablette donc je ne peux vérifier si ça répond à mes attentes.

Je regarderai dès demain matin au boulot.

Pour répondre à ta question pourquoi ça commence en ligne 5 tout simplement le fichier réel débute en ligne 5 pour les données mais c'est vrai que j'aurai du le préciser ou envoyer un fichier respectant ce point.

Merci beaucoup en tout cas. Je te tiens informé demain sans faute.

EnGo a écrit :
Yvouille a écrit :

Salut,

Je n’ai pas compris pourquoi ta boucle devait commencer qu’à la ligne 5, mais pourquoi pas.

Je ne suis pas certain d’avoir tout bien compris tes explications, alors regarde déjà ce que je te fournis en annexe et indique-moi ce qu’il manque.

Tu déclenches le code par le bouton en place sur la feuille.

Cordialement.

Bonsoir Yvouille

Merci de ton retour

Je suis actuellement sur une tablette donc je ne peux vérifier si ça répond à mes attentes.

Je regarderai dès demain matin au boulot.

Pour répondre à ta question pourquoi ça commence en ligne 5 tout simplement le fichier réel débute en ligne 5 pour les données mais c'est vrai que j'aurai du le préciser ou envoyer un fichier respectant ce point.

Merci beaucoup en tout cas. Je te tiens informé demain sans faute.

C'est nickel Yvouille, ça marche du tonerre avec un petit bémol que j'ai oublié de préciser dans ma demande.

Lorsque le "Statut" est différent de "Annulée", "Finalisée" et "Vide", la macro vérifie bien si la "Fin réelle" est renseignée et est inférieure à aujourd'hui.

Si elle est inférieure, la macro met bien le msg box mais si elle est supérieure il ne faut pas tester sur la "Fin Planifiée" car l'action est par définition toujours en cours car Fin réelle > Aujourd'hui

Me suis-je fais comprendre ?

N'hésite pas si tu as besoin de précisions.

Yvouille a écrit :

Salut,

Je n’ai pas compris pourquoi ta boucle devait commencer qu’à la ligne 5, mais pourquoi pas.

Je ne suis pas certain d’avoir tout bien compris tes explications, alors regarde déjà ce que je te fournis en annexe et indique-moi ce qu’il manque.

Tu déclenches le code par le bouton en place sur la feuille.

Cordialement.

Yvouille, finalement ça fonctionne très bien.

Merci beaucoup pour ton aidre précieuse.

Tant mieux

Inutile de reprendre l'entièreté des messages précédents dans tes réponses ; ils sont à disposition juste au-dessus.

A la prochaine.

Rechercher des sujets similaires à "boucle"