Macro pour afficher un message sous candition

Résolu
Blo -  
 blo -
Bonjour,
je suis nouveau sur ce forum,
je voudrais une macro qui permet d'afficher un message d'erreur si chiffre sur la cellule (A1 par exemple) est supérieur ou égale au chiffre correspondant au mois en cours (que j'ai mis dans une cellule B2 par exemple).


je voudrais précisé que le chiffre dans la cellule A1 ne sera pas saisi mais j'ai une macro qui génère des chiffres selon un choix porté sur une liste déroulante.

je vous remercie par avance

Blo


A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Bonjour,
Tout dépends comment tu saisis ton mois en B2...
0
blo
 
Bonjour,

mon mois sur B2 sera obtenu de la façon suivante B2= mois(B3).
sachant que B3=AUJOURDHUI().

comme-ça chaque mois j'aurai automatiquement sur B2 le chiffre qui correspond au mois en cours.

merci
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Alors ta macro doit ressembler à ceci :
If CInt(Range("A1").Value) > CInt(Range("B2").Value) Then
    MsgBox "La valeur saisie en A1 est trop grande"
End If
0
blo
 
merci pour cette macro, elle fonctionne
mais... comme je voudrais qu'elle s'exicute automatiquement j'ai utilisé : Private Sub Worksheet_SelectionChange(ByVal Target As Range)

le problème c'est que lorsque la liste déroulante génère un chiffre sur la cellule A1 qui est suppérieur à B2 le message ne saffiche pas directement. je suis obligé de cliquer sur une cellule pour que le message s'affiche.

je me demande si on peut améliorer cette macro pour résoudre ce problème.


encore merci beaucoup
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Bien sur que ta macro ne se déclenche que lorsque tu sélectionnes une autre cellule. C'est logique car l'événement que tu as choisit est : Worksheet_SelectionChange.
Si tu veux que ta macro se déclenche dès qu'une valeur de ta feuille change, choisit l'événement : Worksheet_Change comme ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If CInt(Range("A1").Value) > CInt(Range("B2").Value) Then
    MsgBox "La valeur saisie en A1 est trop grande"
End If
End Sub
0
blo
 
je te remercie beaucoup, vraiment merci !


ça marche mais non pas avec 'Selectionchange' mais avec 'calculate' car le chiffre est considéré comme étant calculé.

merci à toi et bon courage
0