EXCEL VBA Problème condition + Msgbox
Kamou
-
Kamou -
Kamou -
Bonjour à tous,
je cherche à faire un truc tout bête mais sur lequel je bloque méchamment du fait de mes connaissances (plus que) limitées en VBA.
J'ai des cellules qui doivent avoir la même valeur. Mon but est simple: quand un utilisateur remplit le tableau, une msg box apparait s'il n'a pas introduit des valeurs égales dans des cellules qui devraient être égal.
Plus simplement: je voudrais que B9 = B19 et si ce n'est pas le cas une Msg Box apparait lui rappelant qu'il n'a rien compris et que les valeurs doivent être égal.
La fonction que j'utilise ne semble pas avoir de problème et pourtant rien ne se pass<e dans l'excel quand j'introduis des valeurs différentes dans les cellules concernées
Merci d'avance pour votre aide :)
Voila ma macro:
Sub EQUAL()
If [B19] <> [B9] Then
MsgBox "Numbers of customers must be equal! ... Logical Right?", , "Error"
End If
End Sub
je cherche à faire un truc tout bête mais sur lequel je bloque méchamment du fait de mes connaissances (plus que) limitées en VBA.
J'ai des cellules qui doivent avoir la même valeur. Mon but est simple: quand un utilisateur remplit le tableau, une msg box apparait s'il n'a pas introduit des valeurs égales dans des cellules qui devraient être égal.
Plus simplement: je voudrais que B9 = B19 et si ce n'est pas le cas une Msg Box apparait lui rappelant qu'il n'a rien compris et que les valeurs doivent être égal.
La fonction que j'utilise ne semble pas avoir de problème et pourtant rien ne se pass<e dans l'excel quand j'introduis des valeurs différentes dans les cellules concernées
Merci d'avance pour votre aide :)
Voila ma macro:
Sub EQUAL()
If [B19] <> [B9] Then
MsgBox "Numbers of customers must be equal! ... Logical Right?", , "Error"
End If
End Sub
A voir également:
- EXCEL VBA Problème condition + Msgbox
- Liste déroulante excel - Guide
- Excel cellule couleur si condition texte - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
7 réponses
Bonjour,
Une autre solution toute simple, tu peux utiliser l'option "validation des données" que tu obtiens en faisant données/validation.
Ainsi tu peux choisir des critères de validation et faire apparaître des messages d'erreurs.
Pas besoin de macro quand Excel a des programmes déjà installés ! ;)
Une autre solution toute simple, tu peux utiliser l'option "validation des données" que tu obtiens en faisant données/validation.
Ainsi tu peux choisir des critères de validation et faire apparaître des messages d'erreurs.
Pas besoin de macro quand Excel a des programmes déjà installés ! ;)
Bonjour,
Je crains fort que ton problème se complique lorsqu'il s'agit de bien déterminer le bon "évènement".
Quand appelles-tu ta fonction ?
Je crains fort que ton problème se complique lorsqu'il s'agit de bien déterminer le bon "évènement".
Quand appelles-tu ta fonction ?
Bonjour tuxboy,
Alors si par "appeller" tu entends quand est-ce que je veux qu'elle apparraisse et bien j'aimerais que le Msg box viennent quand le chiffre entré dans la cellule b19 (qui est le résultat d'une somme) n'est pas égal à la cellule b9 (qui est également le résultat d'une autre somme). Les deux sommes devant être égal, je voudrais qu'un message "interpelle" l'utilisateur si ce n'est pas le cas.
J'espère être clair ?!?
Merci pour ta réponse !
Alors si par "appeller" tu entends quand est-ce que je veux qu'elle apparraisse et bien j'aimerais que le Msg box viennent quand le chiffre entré dans la cellule b19 (qui est le résultat d'une somme) n'est pas égal à la cellule b9 (qui est également le résultat d'une autre somme). Les deux sommes devant être égal, je voudrais qu'un message "interpelle" l'utilisateur si ce n'est pas le cas.
J'espère être clair ?!?
Merci pour ta réponse !
Modifie alors la "Sub Worksheet_Change" existante ainsi :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B19").Address Then
If Target.Value <> Range("B9").Cells.Value Then
MsgBox "Numbers of customers must be equal! ... Logical Right?", , "Error"
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B19").Address Then
If Target.Value <> Range("B9").Cells.Value Then
MsgBox "Numbers of customers must be equal! ... Logical Right?", , "Error"
End If
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci!
Alors j'ai essayé ta solution mais malheureusement rien ne se produit.... Par contre j'ai trouvé une solution qui fonctionne presque. La voici:
Private Sub Worksheet_Calculate()
If [B9] <> [B19] Then MsgBox "Numbers of customers must be equal! ... Logical Right?", vbOKOnly, "Error"
End Sub
Le problème qui est apparu maintenant c'est que le message apparait à chaque étape de la somme (à chaque fois qu'une cellule faisant partie du calcul est remplie) alors que je souhaiterais que le message n'apparaisse qu'une seule fois à la fin des calculs si les SOMMES ne sont pas égales...
Alors j'ai essayé ta solution mais malheureusement rien ne se produit.... Par contre j'ai trouvé une solution qui fonctionne presque. La voici:
Private Sub Worksheet_Calculate()
If [B9] <> [B19] Then MsgBox "Numbers of customers must be equal! ... Logical Right?", vbOKOnly, "Error"
End Sub
Le problème qui est apparu maintenant c'est que le message apparait à chaque étape de la somme (à chaque fois qu'une cellule faisant partie du calcul est remplie) alors que je souhaiterais que le message n'apparaisse qu'une seule fois à la fin des calculs si les SOMMES ne sont pas égales...
Tu es sur la bonne voie... En combinant ta solution à la mienne, tu devrais y arriver... car le bon évènement, c'est "Change" et non "Calculate"
Courage tu y es presque !
Courage tu y es presque !
Haaa voilà!!
Alors selon tes conseils j'ai triffouillé par ci par la en utilisant "Change" et non "Calculate". J'ai malheureusement pas réussi à contrer le problème évoqué dans mon dernier post et j'en suis resté la:
Private Sub Worksheet_Change(ByVal Target As Range)
If [B9] <> [B19] Then MsgBox "Numbers of customers must be equal! ... Logical Right?", vbOKOnly, "Error"
End Sub
Du coup j'avoue que je suis bloqué parceque clairement mes connaissances sont pas au top!
Si tu avais une solution ca me dépannerait sévèrement! :)
Mais en tout cas merci bcp pour ton aide jusqu'a maintenant!
Alors selon tes conseils j'ai triffouillé par ci par la en utilisant "Change" et non "Calculate". J'ai malheureusement pas réussi à contrer le problème évoqué dans mon dernier post et j'en suis resté la:
Private Sub Worksheet_Change(ByVal Target As Range)
If [B9] <> [B19] Then MsgBox "Numbers of customers must be equal! ... Logical Right?", vbOKOnly, "Error"
End Sub
Du coup j'avoue que je suis bloqué parceque clairement mes connaissances sont pas au top!
Si tu avais une solution ca me dépannerait sévèrement! :)
Mais en tout cas merci bcp pour ton aide jusqu'a maintenant!
Mais malheureusement j'ai l'impression que ca marche uniquement quand on rentre les données dans la cellule directement. Comme il s'agit d'un calcul (en l'occurrence d'une somme), lorsque j'entre les données du calculs la cellule agit normalement et aucun message n'apparait...