[vba] datediff
Résolu
yacleouf
Messages postés
438
Date d'inscription
Statut
Membre
Dernière intervention
-
yacleouf Messages postés 438 Date d'inscription Statut Membre Dernière intervention -
yacleouf Messages postés 438 Date d'inscription Statut Membre Dernière intervention -
4 réponses
je précise que je dois réutiliser le résultats, car j'effectue 2 fois ce calculs une fois pour connaitre le nombre de jours d'une date A à la fin de l'année et celui d'une date B que j'additionnerais par la suite .
Bonjour,
essaies
essaies
MsgBox Format(DateDiff("d", Range("A1"), DateSerial(Year(Range("A1")), 12, 31)), "#,##0") & " jours"
C'est parfait ! en plus la formule gère déjà le cas des années bissextile vraiment nikel
j'ai encore 1 question ...
comment est ce que je pourrait faire, si j'ai besoin de mémoriser ce résultats car je vais effectuer ce calcul deux fois, et pour au final additionner les deux résultats
ma formule sera un truc du genre :
20 +résultat premier caclul/nombre de jour de l'année= (résultat à mémoriser)
20 +résultat deuxième caclul/nombre de jour de l'année = (résultat à mémoriser)
et pour terminer sur addition des deux résultats...
j'espère ne pas en demander de trop ^^"
j'ai encore 1 question ...
comment est ce que je pourrait faire, si j'ai besoin de mémoriser ce résultats car je vais effectuer ce calcul deux fois, et pour au final additionner les deux résultats
ma formule sera un truc du genre :
20 +résultat premier caclul/nombre de jour de l'année= (résultat à mémoriser)
20 +résultat deuxième caclul/nombre de jour de l'année = (résultat à mémoriser)
et pour terminer sur addition des deux résultats...
j'espère ne pas en demander de trop ^^"
désolé... c'est vrai que ma demande n'est pas très simple, pour simplifier cela disons que j'ai besoin d'utiliser cette formule en la stockant dans une variable afin de pouvoir la réutilisé plus tard...
j'ai essayer déjà de faire quelque chose, mais j'ai du me tromper en définissant le type de la variable, j'ai mis un integer et aussi essayer avec un string, mais sa ne marche pas ...
j'ai essayer déjà de faire quelque chose, mais j'ai du me tromper en définissant le type de la variable, j'ai mis un integer et aussi essayer avec un string, mais sa ne marche pas ...
oui, je crois avoir compris
en fait actuellement
test=Format(DateDiff("d", Range("A1"), DateSerial(Year(Range("A1")), 12, 31)), "#,##0") & " jours"
et bien un string et donc tu ne peux pas faire de calcul
par contre
test = DateDiff("d", Range("A1"), DateSerial(Year(Range("A1")), 12, 31))
te renvoie un entier que tu peux utiliser pour tes formules en aval
quite à la fin des calculs d'utiliser la fonction "format" pour la lisibilité
tu dis...
en fait actuellement
test=Format(DateDiff("d", Range("A1"), DateSerial(Year(Range("A1")), 12, 31)), "#,##0") & " jours"
et bien un string et donc tu ne peux pas faire de calcul
par contre
test = DateDiff("d", Range("A1"), DateSerial(Year(Range("A1")), 12, 31))
te renvoie un entier que tu peux utiliser pour tes formules en aval
quite à la fin des calculs d'utiliser la fonction "format" pour la lisibilité
tu dis...
salut,
désolé du retard de ma réponse...
entre temps j'ai eu le temps d'essayer beaucoup de choses, et voila à quoi j'arrive :
enfaite j'essaye de lui demander de me faire ce calcul, et de me retourner le résultat dans la cellule D29
désolé du retard de ma réponse...
entre temps j'ai eu le temps d'essayer beaucoup de choses, et voila à quoi j'arrive :
Dim test As Integer, resultat As Integer, test2 As Integer, result As Integer test2 = DateDiff("d", Range("E10"), DateSerial(Year(Range("E10")), 1, 1)) test = DateDiff("d", Range("E10"), DateSerial(Year(Range("E10")), 12, 31)) resultat = ((28 * test2) + (14 * test)) / 365 result = resultat result.Value = Cells(D, 29).Value
enfaite j'essaye de lui demander de me faire ce calcul, et de me retourner le résultat dans la cellule D29