Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lancer une MsgBox sur condition cellule

  • Initiateur de la discussion Initiateur de la discussion Guy_L
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Guy_L

XLDnaute Occasionnel
Bonjour,
voici ma question:
si une cellule (en l'occurence S25) prend une valeur donnée, je souhaite pouvoir lancer une MsgBox du type "faire telle action".

J'ai essayé avec la macro suivante écrite dans la feuille concernée, mais ça ne fonctionne pas:

Private Sub Worksheet_Calculate()
If Range("S25") = "A00" Then
MsgBox "faire telle action "
End If
End Sub

De plus la cellule en question peut prendre plusieurs valeurs dont A00, A01, A02, A03, A04 et A05 pour lesquelles je voudrai lancer cette même MsgBox. Un truc du genre:

If Range("S25") = "A00" or "A01" or "A02" or "A03" or "A04" or "A05" Then

Merci à qui pourra m'aider
Salutations
Guy
 
Re : Lancer une MsgBox sur condition cellule

Bonjour Guy

1 te conseille d'utiliser l'interruption Change de la feuille concernée
Target est l'objet cellule modifiée
Code:
Private Sub Worksheet_Change(ByVal [B]Target[/B] As Range)

End Sub

Si tu as une action differente selon le code

Code:
Private Sub Worksheet_Change(ByVal [B]Target[/B] As Range)
if target.address = "$S$25" then
    select case target
         case "A01"
               msgbox "Action 1"
         case "A02"
               msgbox "Action 2"
         case "A03","A04","A05" ' meme action pour les 3 codes
               msgbox "Action 3"
         case "A06"
               msgbox "Action 4"
    end select
end if
End Sub

bon dimanche
 
Re : Lancer une MsgBox sur condition cellule

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$S$25" And Target.Count = 1 Then 
      If Target = "A00" Then MsgBox "xxx"
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$S$25" And Target.Count = 1 Then
       If InStr("A00 A01 A02 A03 A04", Target) > 0 Then MsgBox "yyy"
    End If
End Sub

JB
 
Re : Lancer une MsgBox sur condition cellule

Bon, désolé mais ça ne fonctionne pas (mais j'ai dû mal m'y prendre).
1) quelle différence entre "sub" et private sub" ?
2) où enregistrer la macro (dans la feuille elle-même ou bien dans un module) ?
3) quelle est la fonction de Target.Count ?

voici la macro telle que je l'ai saisie une fois dans la feuille concernée par le test et comme ça ne marchait pas, j'ai ré-essayé dans un module.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$S$25" And Target.Count = 1 Then
If Target = "A00" Then MsgBox "test"
End If
End Sub

merci d'avance
Guy
 
Re : Lancer une MsgBox sur condition cellule

Voir PJ

Clic-Droit sur le nom onglet/Visualiser le code

JB

J'ai compris pourquoi ça ne fonctionne pas: tout cela est OK si S25 est saisie directement.
Or dans mon cas, S25 est le résultat d'un calcul :

=RECHERCHEV(G25;Réf!D40:E121;2)

et là ça ne fonctionne pas

mais c'est déjà un bon début, merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…