Effectivement, je ne l'avais pas fait car mes valeurs sont en réalité des dates et je n'avais regardé que du côté des dates pour "Données Validation".
Je viens de tester, cela fonctionne.
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution...
Bonne journée
Bonjour
Pourquoi utliser VBA alors qu'une validation de données suffit ?
sélectionner les cellules E5:Ex données / validation / nombre entier / supérieur à / Å (sans $) dans l'onglet alerte mettre le message voulu.
Stéphane
"JacquesH" a écrit dans le message de news:
Bonjour à toutes et tous,
Mes maigres compétences en VBA ont encore atteint leurs limites. Voilà mon problème :
Je saisis une date dans une cellule et je souhaite vérifier qu'elle est bien postérieure à celle d'une autre cellule.
Lorsque je valide cette cellule, si la date n'est pas correcte, apparait une Msgbox :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("E5").Value < Range("C5").Value Then MsgBox "Cette date doit être postérieure à la précédente" End If
End Sub
Cela fonctionne bien sauf que E5 et C5 ne sont pas mes uniques cellules à vérifier.
Comment faire pour que, quand je valide E6, la macro compare la date à C6 (idem pour E7 - C7)....?
Merci par avance de votre aide
Jacques
Jacky
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution Un truc du genre:
'-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution Un truc du genre:
'-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
JacquesH
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date
validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait
saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Jacky
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Euuh
Ca le fait pas ??
Ou alors j'ai pas compris....
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:O8NhZd1vFHA.460@TK2MSFTNGP15.phx.gbl...
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date
validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait
saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
JacquesH
Je me suis sans doute mal exprimé.
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Je me suis sans doute mal exprimé.
Ce que je souhaite faire :
- J'ai une date en C5
- Je tape une date en E5
- Si la date en E5 est antérieure, alors Msgbox.
Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop :
- Je tape une date en C5
- Immédiatement la Msgbox apparait
Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de
la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh
Ca le fait pas ??
Ou alors j'ai pas compris....
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:O8NhZd1vFHA.460@TK2MSFTNGP15.phx.gbl...
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date
validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait
saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Jacky
Re.. OK Change cette ligne '-------- If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> "" Then '---------- JJ
"JacquesH" a écrit dans le message de news:%
Je me suis sans doute mal exprimé.
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de
news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
Re..
OK
Change cette ligne
'--------
If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> ""
Then
'----------
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:%23Imyu61vFHA.2076@TK2MSFTNGP14.phx.gbl...
Je me suis sans doute mal exprimé.
Ce que je souhaite faire :
- J'ai une date en C5
- Je tape une date en E5
- Si la date en E5 est antérieure, alors Msgbox.
Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop :
- Je tape une date en C5
- Immédiatement la Msgbox apparait
Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de
la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh
Ca le fait pas ??
Ou alors j'ai pas compris....
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message
de
news:O8NhZd1vFHA.460@TK2MSFTNGP15.phx.gbl...
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date
validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait
saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
Re.. OK Change cette ligne '-------- If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> "" Then '---------- JJ
"JacquesH" a écrit dans le message de news:%
Je me suis sans doute mal exprimé.
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message de
news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
JacquesH
OK, tout va bien.
Merci pour ton aide.
Jacques
Re.. OK Change cette ligne '-------- If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> "" Then '---------- JJ
"JacquesH" a écrit dans le message de news:%
Je me suis sans doute mal exprimé.
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message
de
news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ
OK, tout va bien.
Merci pour ton aide.
Jacques
Re..
OK
Change cette ligne
'--------
If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> ""
Then
'----------
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:%23Imyu61vFHA.2076@TK2MSFTNGP14.phx.gbl...
Je me suis sans doute mal exprimé.
Ce que je souhaite faire :
- J'ai une date en C5
- Je tape une date en E5
- Si la date en E5 est antérieure, alors Msgbox.
Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop :
- Je tape une date en C5
- Immédiatement la Msgbox apparait
Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de
la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh
Ca le fait pas ??
Ou alors j'ai pas compris....
JJ
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message
de
news:O8NhZd1vFHA.460@TK2MSFTNGP15.phx.gbl...
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date
validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait
saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par
une solution VBA. Si tu as une solution
Un truc du genre:
'--------
For i = 5 To 8 '***A adapter ***
If Range("E" & i).Value < Range("C" & i).Value Then
MsgBox "Cette date en E" & i & " doit être postérieure à C" & i
End If
Next
'----------
Salutations
JJ
Re.. OK Change cette ligne '-------- If Range("E" & i).Value < Range("C" & i).Value And Range("E" & i) <> "" Then '---------- JJ
"JacquesH" a écrit dans le message de news:%
Je me suis sans doute mal exprimé.
Ce que je souhaite faire : - J'ai une date en C5 - Je tape une date en E5 - Si la date en E5 est antérieure, alors Msgbox. Cela la Macro le fait très bien.
En revanche, ce qui ne m'arrange pas trop : - Je tape une date en C5 - Immédiatement la Msgbox apparait Je souhaiterais qu'elle n'apparaisse que quand on valide une cellule de la colonne E.
Est-ce plus clair ?
Merci par avance
Jacques
Euuh Ca le fait pas ?? Ou alors j'ai pas compris.... JJ
"JacquesH" a écrit dans le message
de
news:
Bonjour et merci pour ta réponse,
C'est ce que je cherchais à faire et cela fonctionne.
En revanche, il faut gérer un petit problème car dès qu'il y a une date validée dans une cellule de C, la Msgbox apparaît jusqu'à ce qu'on ait saisi en E. Sais-tu le faire ?
Jacques
Bonjour Jacques
En revanche, au titre de ma formation, je suis toujours intéressé par une solution VBA. Si tu as une solution
Un truc du genre: '-------- For i = 5 To 8 '***A adapter *** If Range("E" & i).Value < Range("C" & i).Value Then MsgBox "Cette date en E" & i & " doit être postérieure à C" & i End If Next '---------- Salutations JJ