Comparaison de date en vba
Résolu/Fermé
randall
Messages postés
426
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
23 octobre 2024
-
Modifié le 26 avril 2019 à 20:18
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 28 avril 2019 à 11:10
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 28 avril 2019 à 11:10
A voir également:
- Vba comparer deux dates
- Deux ecran pc - Guide
- Deux comptes whatsapp - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Itinéraire google map entre deux adresses - Guide
- Faire deux colonnes sur word - Guide
4 réponses
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
26 avril 2019 à 23:18
26 avril 2019 à 23:18
Bonjour,
quelques erreurs dans ton code
quelques erreurs dans ton code
Sub vaccin() Dim cel As Range Dim aujourdhui Dim madate2 'aujourdhui = (Range("F2").Value) aujourdhui = CDate(Format(Now(), "d/mm/YY")) ' pas besoin de la cellule F2 pour avoir la date de maintenant... For Each cel In Range("c2:C6").Cells madate2 = CDate(DateAdd("d", 10, CDate(cel.Value))) If madate2 > aujourdhui Then cel.Interior.ColorIndex = 3 End If Next cel End Sub
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié le 27 avril 2019 à 15:32
Modifié le 27 avril 2019 à 15:32
Bonjour à tous les deux
On peut faire un poil plus simple en lisant les dates comme entiers
Cdlmnt
On peut faire un poil plus simple en lisant les dates comme entiers
Sub vaccin() Dim cel As Range, madate2 As Long, aujourdhui As Long aujourdhui = Date For Each cel In Range("C2:C6") madate2 = cel.Value + 10 If madate2 > aujourdhui Then cel.Interior.ColorIndex = 3 Else cel.Interior.ColorIndex = xlNone End If Next cel End Sub
Cdlmnt
Bonjour Jordane,
Merci pour ta réponse,çà fonctionne bien ,mais j'ai modifié celle de mon crû et j'ai toujours un problème au niveau de la ligne madate2 = madate(DateAdd("d", -10, madate(cel.Value))) qui consiste à enlever dix jours à la date inscrite dans chaque cellule c2 à c6 pour la comparer à la date du jour je ne vois pas le problème je me suis un peu calé sur ton code pourtant.
merci pour le dérangement
Sub vaccin()
Dim cel As range
Dim madate2
madate = range("F3")
madate = DateSerial(Year(madate), Month(madate), Day(madate))
For Each cel In range("c2:C6").cells
madate2 = madate(DateAdd("d", -10, madate(cel.Value)))
If madate2 > madate Then
cel.Interior.ColorIndex = 3
End If
Next cel
End Sub
Merci pour ta réponse,çà fonctionne bien ,mais j'ai modifié celle de mon crû et j'ai toujours un problème au niveau de la ligne madate2 = madate(DateAdd("d", -10, madate(cel.Value))) qui consiste à enlever dix jours à la date inscrite dans chaque cellule c2 à c6 pour la comparer à la date du jour je ne vois pas le problème je me suis un peu calé sur ton code pourtant.
merci pour le dérangement
Sub vaccin()
Dim cel As range
Dim madate2
madate = range("F3")
madate = DateSerial(Year(madate), Month(madate), Day(madate))
For Each cel In range("c2:C6").cells
madate2 = madate(DateAdd("d", -10, madate(cel.Value)))
If madate2 > madate Then
cel.Interior.ColorIndex = 3
End If
Next cel
End Sub
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
27 avril 2019 à 17:15
27 avril 2019 à 17:15
Déjà, pour poster ton code, merci à l'avenir d'utiliser les BALISES DE CODE.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, si tu regardes bien la ligne
que viennent y faire le "madate( " devant le dateAdd et celui devant le cel.value ???
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, si tu regardes bien la ligne
madate2 = madate(DateAdd("d", -10, madate(cel.Value)))
que viennent y faire le "madate( " devant le dateAdd et celui devant le cel.value ???
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
28 avril 2019 à 11:10
28 avril 2019 à 11:10
Re
Tu te compliques la vie pour rien, une date est codée comme un entier, donc
madate et madate2 étant déclarées comme de type long
- pour lui ajouter 10 jours > madate2 = madate+10
- pour lui enlever 10 jours > madate2 = madate-10
Cdlmnt
Tu te compliques la vie pour rien, une date est codée comme un entier, donc
madate et madate2 étant déclarées comme de type long
- pour lui ajouter 10 jours > madate2 = madate+10
- pour lui enlever 10 jours > madate2 = madate-10
Cdlmnt