Problème pour ajouter des jours dans une boucle
randall
Messages postés
440
Date d'inscription
Statut
Membre
Dernière intervention
-
randall -
randall -
Bonjour,
Sur des dates d'échéances sur une plage de cellules C1 à C6 je veux savoir si la date est inférieure de 20 jours par rapport à la date d'aujourd'hui afin colorer une cellule en rouge par exemple pour déclencher un avertissement.
Sur les 3 procédures ci-dessous seule la première fonctionne les 2 autres me donnent une date de 19/01/1900 à date2 avec les 2 formules qui ajoutent 20 jours et donc le résultat est faux . Pourquoi?ces 2 formules avec madate2 = madate2+ 20 et Date Add semblent correctes pourtant.exemples trouvés sur internet.
Merci pour la réponse
Sub echéance2()( procédure qui fonctionne)
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = cel.Value + 20
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Sub échéance4()
'essai pour ajouter 20 jours
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = madate2 + 20 (madate2 me donne 19/01/1900 en pas à pas au lieu de 17/04/2019)
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Sub echeance5()
'essai pour ajouter 20 jours
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = DateAdd("d", 20, (madate2) me donne 19/01/1900 en pas à pas au lieu de 17/04/2019)
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Sur des dates d'échéances sur une plage de cellules C1 à C6 je veux savoir si la date est inférieure de 20 jours par rapport à la date d'aujourd'hui afin colorer une cellule en rouge par exemple pour déclencher un avertissement.
Sur les 3 procédures ci-dessous seule la première fonctionne les 2 autres me donnent une date de 19/01/1900 à date2 avec les 2 formules qui ajoutent 20 jours et donc le résultat est faux . Pourquoi?ces 2 formules avec madate2 = madate2+ 20 et Date Add semblent correctes pourtant.exemples trouvés sur internet.
Merci pour la réponse
Sub echéance2()( procédure qui fonctionne)
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = cel.Value + 20
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Sub échéance4()
'essai pour ajouter 20 jours
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = madate2 + 20 (madate2 me donne 19/01/1900 en pas à pas au lieu de 17/04/2019)
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Sub echeance5()
'essai pour ajouter 20 jours
Dim cel As range, madate2 As Date, aujourdhui As Long
aujourdhui = Date
For Each cel In range("C1:C6")
madate2 = DateAdd("d", 20, (madate2) me donne 19/01/1900 en pas à pas au lieu de 17/04/2019)
If madate2 < aujourdhui Then
cel.Interior.ColorIndex = 3
Else
cel.Interior.ColorIndex = xlNone
End If
Next cel
End Sub
Configuration: Windows / Chrome 73.0.3683.103
A voir également:
- Problème pour ajouter des jours dans une boucle
- Compte facebook suspendu 180 jours - Guide
- Compte instagram suspendu 180 jours - Guide
- Nombre de jours entre deux dates excel - Guide
- Ajouter une signature sur word - Guide
- Ajouter agenda outlook dans google agenda - Guide
2 réponses
Bonjour,
Déjà.... comme expliqué dans ta précédente question....
.. 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
N'est-ce pas assez clair ???
Donc je le répète encore une fois pour être sûr que tu le prennes bien en compte...
Ensuite...
Normal... vu que la variable madate2 est initialisée nul-part....
Et donc.. par défaut, la date est 19/01/1900
Tu dois donc, dans tes boucles, remplacer
par
ou par
Déjà.... comme expliqué dans ta précédente question....
.. 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
N'est-ce pas assez clair ???
Donc je le répète encore une fois pour être sûr que tu le prennes bien en compte...
pour poster ton code, tu dois utiliser les BALISES DE CODE !
Merci.Ensuite...
les 2 autres me donnent une date de 19/01/1900
Normal... vu que la variable madate2 est initialisée nul-part....
Et donc.. par défaut, la date est 19/01/1900
Tu dois donc, dans tes boucles, remplacer
madate2 = DateAdd("d", 20, (madate2)
par
madate2 = cel.Value + 20
ou par
madate2 = DateAdd("d", 20, cel.Value)
Ici.. on ne doit pas ouvrir de DOUBLONS.
Merci de respecter la charte du forum que tu as accepté en t'inscrivant !