If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • 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 !

pascal21

XLDnaute Barbatruc
bonsoir
je vous explique le problème
cellule a1 une date ex 31/1/2009
colonne B des dates ex du 1/1/2009 au 30/4/2009
colonne C je rentre des données
j'aimerais, si je clique sur C20 par exemple et que le date en B20 est supérieure à A1 alors une msgbox avec "erreur"
j'ai mis ça, mais ça n'est pas satisfaisant bien sur
Code:
 If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!"
comment optimiser ce code pour une environ une trentaine de lignes
merci
si mes explications vous semblent un peu floues je joindrai un fichier


EDIT: je viens de penser à un petit soucis
il faudarit en fait que le message arrive uniquement si je clic en face de la 1ere date supérieure à a1 + 3 jours
ex si en a1 20/2/2009
message en face de la cellule contenant la date du 23/2/2009
 
Dernière édition:
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

Bonjour Pascal, bonjour le forum,

Si j'ai bien tout compris, je te propose la macro événementielle SelectionChange à placer dans le composant Worksheet correspondant (Feuil1(Feuil1) par exemple). Si tu cliques sur une cellule de la colonne C elle compare la cellule correspondante de la colonne B avec A1 et t'affiche un message si elle est supérieure ou égale :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub 'si la cellule sélectionné n'est pas dans la colonne C, sort de la procédure
If cell(Target.Row, 2) >= Cells(1, 1) Then MsgBox "Erreur !" 'si la cellule de la colonne B est supérieure ou égale à A1 , message
End Sub
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

bonjour pascal21

teste:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then
  If Target.Offset(0, -1) >= Range("A1").Value Then MsgBox ("erreur !!!")
End If
End Sub

Edit: Salut Robert
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

bonsoir robert, pierrejean
merci pour vos réponses
vous avez cerné ma demande
j'ai utilisé le code de pierrejean car avec celui de robert j'ai une erreur sur "cell" ????
maintenant, est-il possible que l'on puisse ignorer le message et rentrer des données quand même
je pense à une msgbox avec "ignore" qui dans ce cas n'afficherait plus le message jusqu'a ce que l'on change de feuille par exemple
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

Bonsoir le fil, bonsoir le forum,

Je ne comprends pas le code de PierreJean ne t'empêche pas d'éditer il t'affiche juste le message. Libre à toi après t'en tenir compte ou pas....
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

re robert
je suis d'accord avec toi je peux éditer quand même, mais,pour gagner du temps lors de la saisie, il ne faudrait pas à avoir à kliquer sur le ok de la msgbox à chaque saisie
pour être plus clair et précis
toutes les saisies en face d'une date plus récente que dans la cellule a1 ne sont pas prises en compte pour le mois courant
j'ai juste besoin d'un rappel, d'où l'idée de la msgbox avec "ignorer" pour pouvoir continuer à saisir sans revoir le message à chaque fois
je vais regarder demain si je ne trouve pas des exemples avec l'option ignorer quelque part
on doit bien pouvoir mettre fin à une macro en cliquant sur "ignorer tant que l'on a pas changé de page par exemple
bonne nuit
 
Dernière édition:
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

Re,
on doit bien pouvoir mettre fin à une macro en cliquant sur "ignorer tant que l'on a pas changé de page par exemple
Peut-être comme ça
Code:
Dim Flag 'en tête du module de la feuille

Private Sub Worksheet_Activate()
Flag = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 3 Or Target.Count > 1 Or Flag = True Then Exit Sub
If Cells(Target.Row, 2) = Cells(1, 1) + 3 Then
CreateObject("Wscript.shell").Popup "Erreur !", 1, "Pascal tu déconnes !", vbExclamation
Flag = True
End If
End Sub
A+
kjin
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

bonjour à tous
Kjin, ton idée du message qui disparait tout seul est bonne,
peut-on l'améliorer en fait, il faudrait que le message apparaisse à partir de V +3
et non pas uniquement sur V1 +3
je veux parler des dates en colonne C bien sur
je joint un bout de fichier pour mieux comprendre
 

Pièces jointes

Dernière édition:
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

Bonsoir,
Là je crois que je dois retourner à l'école illico presto (ou la maison de retraite, à voir)
Et si tu remplaçais
Code:
Cells(Target.Row, 2) = Range("V1") + 3
par
Code:
Cells(Target.Row, 2) > Range("V1") + 3
ou si le coeur t'en dit
Code:
Cells(Target.Row, 2) >= Range("V1") + 3
En outre, j'ai beau chercher, je ne vois pas de date en colonne C (Noté faire un saut chez l'ophtalmo)
A+
kjin
 
Re : If Range("b3").Value >= Range("a1").Value Then MsgBox "erreur!!!!!

bonjour
tu as raison Kjin, je ne devais pas être bien réveillé
ça fonctionne maintenant
j'ai juste remis une msgbox classique qui permet de pouvoir lire le message en entier avant de cliquer sur ok
 
- 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
9
Affichages
390
Réponses
5
Affichages
928
Réponses
2
Affichages
774
Réponses
6
Affichages
966
Retour