Macro pour afficher un message sous candition

Résolu/Fermé
Blo - 7 août 2011 à 18:53
 blo - 8 août 2011 à 14:08
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


4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
8 août 2011 à 11:22
Bonjour,
Tout dépends comment tu saisis ton mois en B2...
0
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
8 août 2011 à 12:05
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
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
8 août 2011 à 13:53
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
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