VBA nombre de jours entre 2 dates

Résolu/Fermé
doom56530 Messages postés 10 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2012 - 2 févr. 2010 à 14:56
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 18 janv. 2016 à 15:52
Bonjour,

J'essaye de calculer la différence entre deux dates à l'aide d'une macro pour une base de données.
J'arrive à calculer cette différence sur une seule ligne. J'utilise le code suivant :
Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer

Dat1 = Range("A1")
Dat2 = Range ("B1")

nbr_jr = Dat2 - Dat1

Range ("C1") = nbr_jr

End sub

Jusque là tout fonctionne comme je le désire.
Ce calcul doit se faire systématiquement (pour chaque nouvelle entrée) quand je valide dans un formulaire.
J'essaye de faire une boucle mais chaque fois ça bug.

Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer
Dim i as Integer
For i = 1 to 20
Dat1 = Range("A" & i)
Dat2 = Range ("B" & i)
nbr_jr = Dat2 - Dat1
Range ("C" & i) = nbr_jr
Next i
End sub

Si vous pouviez détecter mes erreurs ou me donner une idée pour résoudre mon problème ce serait super.

Merci d'avance

2 réponses

Aligator_427 Messages postés 54 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 21 février 2010 21
2 févr. 2010 à 16:00
Attention, tu dois vérifier que ton résultat 'nbr_jr' soit positif; sinon ça plante.

PS: il existe une fonction toute prête pour calculer un écart entre 2 date: DateDiff("d",date1,date2)
11
Avec la contruction suivante : " =DateDiff("d","2016/01/16","2016/01/10") ", ça ne marche pas. Pourquoi ? Où est l'erreur ? Merci.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 janv. 2016 à 15:52
BNonjour

DateDiff("d", "2016 / 01 / 10", "2016 / 01 / 16")
0