MsgBox différente selon valeur d'une cellule
Résolu/Fermé
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
-
10 mai 2011 à 15:34
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 11 mai 2011 à 09:15
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 11 mai 2011 à 09:15
A voir également:
- MsgBox différente selon valeur d'une cellule
- Aller à la ligne dans une cellule excel - Guide
- Si cellule contient texte alors ✓ - Forum Excel
- Verrouiller cellule excel - Guide
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Excel renvoyer la valeur d'une cellule en fonction d'une autre ✓ - Forum Excel
11 réponses
Le Pingou
Messages postés
12034
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 mars 2024
1 425
10 mai 2011 à 16:49
10 mai 2011 à 16:49
Bonjour,
Essayez avec une procédure [Private Sub Worksheet_Change(ByVal Target as Range)
] dans laquelle vous insérez votre code et la placée dans le module de la feuille concernée.
Essayez avec une procédure [Private Sub Worksheet_Change(ByVal Target as Range)
] dans laquelle vous insérez votre code et la placée dans le module de la feuille concernée.
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
10 mai 2011 à 17:18
10 mai 2011 à 17:18
Tout d'abord merci pour votre réponse, mais il reste malgré tout à surveiller le changement d'état de la cellule "G5" que je ne parviens à faire.
J'ai déjà mis le code ci-dessus dans une procédure
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mais je n'affiche pas les différentes MsgBox. Comment faire?
Cordialement
Mistral
J'ai déjà mis le code ci-dessus dans une procédure
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mais je n'affiche pas les différentes MsgBox. Comment faire?
Cordialement
Mistral
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
10 mai 2011 à 17:21
10 mai 2011 à 17:21
En fait les MsgBox s'affichent chaque fois qu'une cellule de la feuille est modifiée alors que je souhaiterais que l'affichage ne se fasse que lorsque la cellule "G5" est modifiée.
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
Modifié par ccm81 le 10/05/2011 à 17:24
Modifié par ccm81 le 10/05/2011 à 17:24
bonjour à tous les deux
fonctionne, mais si on modifie G5 "à la main",
si le contenu de G5 est une formule, ça ne fonctionne pas et je ne sais pas faire !
bonne suite
Private Sub Worksheet_Change(ByVal Target As Range) Dim Num_Concours As Long If Not Intersect(Sheets("menu").Range("G5"), Target) Is Nothing Then Num_Concours = Sheets("Menu").Range("G5") Select Case Num_Concours Case Is = 1 MsgBox (" Message1"), vbInformation Case Is = 2 MsgBox (" Message2"), vbInformation Case Is = 3 MsgBox (" Message3"), vbInformation End Select End If End Sub
fonctionne, mais si on modifie G5 "à la main",
si le contenu de G5 est une formule, ça ne fonctionne pas et je ne sais pas faire !
bonne suite
Le Pingou
Messages postés
12034
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 mars 2024
1 425
10 mai 2011 à 21:40
10 mai 2011 à 21:40
Bonjour ccm81,
Merci pour le coup de main.
A une prochaine.
Salutations.
Le Pingou
Merci pour le coup de main.
A une prochaine.
Salutations.
Le Pingou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
10 mai 2011 à 18:37
10 mai 2011 à 18:37
Ca ne fonctionne pas!
Le contenu de la cellule "G5" est choisi dans une liste déroulante.
J'ai fait l'essais sur une feuille indépendante en forçant manuellement la valeur de la cellule "G5" mais c'est quand même pas bon.
Les MsgBox s'affichent quand on sélectionne la cellule et il faudrait que les MsgBox s'affichent uniquement quand on valide la cellule
Le contenu de la cellule "G5" est choisi dans une liste déroulante.
J'ai fait l'essais sur une feuille indépendante en forçant manuellement la valeur de la cellule "G5" mais c'est quand même pas bon.
Les MsgBox s'affichent quand on sélectionne la cellule et il faudrait que les MsgBox s'affichent uniquement quand on valide la cellule
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 304
10 mai 2011 à 18:44
10 mai 2011 à 18:44
Bonjour,
Le code de ccm (bonjour) fonctionne parfaitement
regarde si tu as bien
et non comme tu l'as marqué + haut
Le code de ccm (bonjour) fonctionne parfaitement
regarde si tu as bien
Private Sub Worksheet_Change(ByVal Target As Range)
et non comme tu l'as marqué + haut
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
10 mai 2011 à 18:45
10 mai 2011 à 18:45
re
es tu sur d'avoir mis le code dans
Private Sub Worksheet_Change(ByVal Target As Range)
chez moi ça marche avec une liste déroulante
bonne suite
es tu sur d'avoir mis le code dans
Private Sub Worksheet_Change(ByVal Target As Range)
chez moi ça marche avec une liste déroulante
bonne suite
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
10 mai 2011 à 18:58
10 mai 2011 à 18:58
Je pense avoir fait les choses correctement.
Clic droit sur l'onglet de la feuille et afficher le code et j'ai le code suivant :
Le code fonctionne correctement en rentrant la valeur directement dans la cellule "G5".
Mais c'est de ma faute, je n'avais pas lu le message précedent jusqu'au bout. Le résultat de la cellule "G5" dépend effectivement de la formule qu'elle contient qui elle dépend de la cellule "H5". La cellule "H5" peut prendre les valeures Bleu, Blanc ou Rouge et la formule en G5 est la suivante :
=SI($H$5="Bleu";1;SI($H$5="Blanc";2;SI($H$5="Rouge";3;"")))
Comment contourner ce problème?
Cordialement
Mistral
Clic droit sur l'onglet de la feuille et afficher le code et j'ai le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range) Dim Num_Concours As Long If Not Intersect(Sheets("menu").Range("G5"), Target) Is Nothing Then Num_Concours = Sheets("Menu").Range("G5") Select Case Num_Concours Case Is = 1 MsgBox (" Message1"), vbInformation Case Is = 2 MsgBox (" Message2"), vbInformation Case Is = 3 MsgBox (" Message3"), vbInformation End Select End If End Sub
Le code fonctionne correctement en rentrant la valeur directement dans la cellule "G5".
Mais c'est de ma faute, je n'avais pas lu le message précedent jusqu'au bout. Le résultat de la cellule "G5" dépend effectivement de la formule qu'elle contient qui elle dépend de la cellule "H5". La cellule "H5" peut prendre les valeures Bleu, Blanc ou Rouge et la formule en G5 est la suivante :
=SI($H$5="Bleu";1;SI($H$5="Blanc";2;SI($H$5="Rouge";3;"")))
Comment contourner ce problème?
Cordialement
Mistral
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
10 mai 2011 à 20:35
10 mai 2011 à 20:35
re
RQ1. donc le contenu de G5 n'est pas obtenu depuis une liste déroulante
RQ2. comme je t'ai dit au post 4, dans le cas où G5 contient une formule, je ne sais pas faire
RQ3. pourquoi alors ne pas tester H5 dans Worksheet_Change plutot que G5 ?
bonne suite
RQ1. donc le contenu de G5 n'est pas obtenu depuis une liste déroulante
RQ2. comme je t'ai dit au post 4, dans le cas où G5 contient une formule, je ne sais pas faire
RQ3. pourquoi alors ne pas tester H5 dans Worksheet_Change plutot que G5 ?
bonne suite
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
940
10 mai 2011 à 23:32
10 mai 2011 à 23:32
Salut le forum
Utilise le contenu de H5 pour déclencher la procédure évenementielle.
Mytå
Utilise le contenu de H5 pour déclencher la procédure évenementielle.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("H5")) Is Nothing Then Select Case Target.Offset(0, -1) Case Is = 1 MsgBox (" Message1"), vbInformation Case Is = 2 MsgBox (" Message2"), vbInformation Case Is = 3 MsgBox (" Message3"), vbInformation Case Else MsgBox (" Erreur"), vbInformation End Select End If End Sub
Mytå
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
11 mai 2011 à 09:15
11 mai 2011 à 09:15
Bonjour à tous,
Je suis arrivé à faire ce que je voulais en utilisant directement la valeur de la cellule "H5".
Pourquoi n'y avais-je pas pensé avant???
Un grand merci au Pingou, Michel, ccm81 et Myta.
Je clos le sujet.
Bonne journée à tous.
Cordialement
Mistral
Je suis arrivé à faire ce que je voulais en utilisant directement la valeur de la cellule "H5".
Pourquoi n'y avais-je pas pensé avant???
Un grand merci au Pingou, Michel, ccm81 et Myta.
Je clos le sujet.
Bonne journée à tous.
Cordialement
Mistral