msgbox suivant la couleur de fond d'une cellule

  • Initiateur de la discussion Tonio
  • Date de début
T

Tonio

Guest
Bonjour à tous !
Je voudrais mettre en place cette procédure :


Dim ws As Worksheet
Dim cell As range

For Each ws In Worksheets

cell("M126").Select

If cell.Interior.ColorIndex = 45 Then
MsgBox ("Alerte orange sur fiche de ...")
ElseIf cell.Interior.ColorIndex = 3 Then
MsgBox ("Alerte rouge sur fiche de ...")
ElseIf cell.Interior.ColorIndex = 30 Then
MsgBox ("Alerte marron sur fiche de ...")

End If

Next

J'explique : la cellule M126 est en mise en forme conditionnelle, et je voudrais que suivant la couleur de fond de cette cellule, le message change.
Voila ce que j'ai tenté de faire sans succès.

Merci à tous !!
 
P

Pascal76

Guest
Salut Tonio

Et non avec une mise en forme conditionnelle tu ne peux pas appliquer les conditions sur les couleurs.
Donc il te faut repasser par les conditions que tu as mises dans ta MFC

Dim ws As Worksheet

For Each ws In Worksheets

If ws.Range("M126") = tacondition1 Then
MsgBox ("Alerte orange sur fiche de ...")
ws.Range("M126") = tacondition2 Then
MsgBox ("Alerte rouge sur fiche de ...")
ws.Range("M126") = tacondition3 Then
MsgBox ("Alerte marron sur fiche de ...")
End If

Next

De plus n'oublies pas que lorsque tu boucles sur toutes tes feuilles de préciser ws.tacellule pour bien préciser ta feuille

Bon courage

Pascal
 
T

Tonio

Guest
Salut pascal !!

Merci de ton aide mais cela ne fonctionne toujours pas, il y a une erreur d'execution 13 : incompatibilité de type.
De plus les conditions dans la MFC sont des valeurs comprises entre 2 chiffres et je ne sais pas comment le représenter en VBA. Cest pour cela que je voulais passer par la couleur de fond.

Merci beaucoup
 
P

Pascal76

Guest
Re tonio

Voilà avec tes conditions

For Each ws In Worksheets

If ws.Range("M126") > 2 And ws.Range("M126") <= 3 Then
MsgBox ("Alerte orange sur fiche de ...")
ElseIf ws.Range("M126") > 3 And ws.Range("M126") <= 4 Then
MsgBox ("Alerte rouge sur fiche de ...")
ElseIf ws.Range("M126") > 4 And ws.Range("M126") <= 5 Then
MsgBox ("Alerte marron sur fiche de ...")
End If

Next

Bon courage

Pascal
 
T

Tonio

Guest
Salut Pascal !!!
Merci de te donner autant de mal pour moi, mais j'aurais encore besoin de toi, j'ai toujours une execution de type 13, et je ne sais pas comment ressoudre ce problème. Est-ce que ca marchait pour toi ?
Est-ce que j'aurai oublié quelque chose d'important ?

Merci beaucoup
 
T

Tonio

Guest
Alors là je ne comprend plus rien !!!

Lorsque je sépare mes feuilles de mon fichier, cela fonctionne correctement, cf ci-joint, sauf qu'il n'y a qu'une alerte, il faudrait qu'a chaque cellule testé et lorsque les conditions sont vérifiées, une msgbox s'affiche.

Est ce que cela peut provenir du fait que dans certaines feuilles, ma cellule M126 est vide?

Merci de ton aide.
 

Pièces jointes

  • msgbox_valeur.zip
    15.8 KB · Affichages: 33
  • msgbox_valeur.zip
    15.8 KB · Affichages: 27
  • msgbox_valeur.zip
    15.8 KB · Affichages: 24
P

Pascal76

Guest
Salut Tonio

Chez moi il n'y a pas d'erreur avec ton fichier.
Pour le problème d'une seule alerte cela venait du fait que ce n'est pas toujours la cellule M126 mais d'autres : exemple M122 en feuil2
J'ai donc légèrement modifié ton fichier pour tester la ligne où se trouve en colonne K ta phrase : "Etat d'urgence du site :" et je fais ensuite le test sur la cellule de la colonne M de cette ligne

Bon courage

Pascal
 

Pièces jointes

  • msgboxvaleur.zip
    17.2 KB · Affichages: 28
  • msgboxvaleur.zip
    17.2 KB · Affichages: 34
  • msgboxvaleur.zip
    17.2 KB · Affichages: 31
T

Tonio

Guest
Merci pour tout Pascal, je vais essayé de m'arranger avec ce que tu m'as donné. C'est agréable de savoir qu'il y a encore un peu de solidarité. Merci à toi et à ce forum !

Bonne journée
 
S

Sebb

Guest
Je me permets juste de rajouter qu'il y a beaucoup de solidarité ici ! :)

(mis à part André qui est très peu prêteur en matière de bière)

Petit clin d'oeil de la part d'un déshydraté notoire ...
 
T

Tonio

Guest
Salut tout le monde !!

C'est encore moi qui comprend rien !!

Voila je vous explique ce qui ne va pas : C'est vrai que cette macro marche très bien, mais il suffit que je rajoute une feuille à mon classeur pour la faire bugger.
De quoi cela peut-il venir?

Merci à tous
 

Discussions similaires

Statistiques des forums

Discussions
314 197
Messages
2 107 040
Membres
109 743
dernier inscrit
TROMBATI