Différence entre une date donnée et la date du jour

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

F

Fab

Guest
Salut,
La macro que j'essaie de faire à pour but de comparer toutes les dates données dans une colonne avec la date du jour. Si la différence (nb de jour) est inférieure à 4 ou négative, il y aura une action qui suivra. Sinon, il doit passer à la date suivante.

Voici le code que j'ai tapé et qui ne fonctionne pas (je soupconne que le format des variables choisi pour les dates est faux).

Sub DeterminationActionDelaLimite()
Dim Cejour As Date
Dim DateLimite As String
Dim DelaiLimite
Dim i
Dim DateActuelle As String
Dim Blanc

Cejour = Now
DateActuelle = Format(Cejour, "dddd dd mmm yyyy")

' Vérification sur la feuille
Sheets("Process OM-174-DP").Select

i = 3
' Début de la boucle
For i = 8 To 200
' Transfert heure d'arrivée dans cellule
Range("F" & i).Select
If Range("F" & i) = "" Then
Blanc = 0
Else
Range("F" & i).Value = DateLimite
DelaiLimite = (DateLimite - DateActuelle)
If DelaiLimite < 4 Then
' Action
ActiveCell.Value = "Raté"
Else
Blanc = 0
End If
End If
Next i
End Sub

Merci d'avance et bonne journée.
Fab
 
Salut

A vue de nez vite fait sans tester

Sub DeterminationActionDelaLimite()
Dim Cejour As Date
Dim DateLimite As Date '<<Modif ici
Dim DelaiLimite
Dim i
Dim DateActuelle As Date '<<Modif ici
Dim Blanc

Cejour = Now
DateActuelle = Format(Cejour, "dddd dd mmm yyyy")

' Vérification sur la feuille
Sheets("Process OM-174-DP").Select

i = 3
' Début de la boucle
For i = 8 To 200
' Transfert heure d'arrivée dans cellule
Range("F" & i).Select
If Range("F" & i) = "" Then
Blanc = 0
Else
DateLimite = Range("F" & i).Value ' << Modif ici
'ou DateLimite = cDate(Range("F" & i).Value) ' a voir si la ligne audessus ne marche pas
DelaiLimite = (DateLimite - DateActuelle)
If DelaiLimite < 4 Then
' Action
ActiveCell.Value = "Raté"
Else
Blanc = 0
End If
End If
Next i
End Sub

Bon courage

Pascal
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
184
Réponses
2
Affichages
515
Retour