1 pièce(s) jointe(s)
Calcul du nombre de jour entre 2 dates
Bonsoir tout le monde,
Aujourd'hui, je n'arrive pas à m'en sortir côté Calcul du nombre de jours entre 2 dates.
J'ai tenté tout ce que j'ai pu pour finalement revenir sur un exemple simple afin de voir si cela fonctionne correctement.
Je suis reparti du code proposé par Fring disponible ici.
J'ai pour cela consituté un petit tableau de 3 lignes comme suit:
DATE PREVUE |
DATE ACTUELLE |
NB JOURS |
01/01/2017 |
03/07/2017 |
|
01/01/2017 |
03/12/2016 |
|
01/01/2017 |
|
|
Le but étant de remplir automatiquement la colonne C.
J'ai donc adapté le code en mettant ceci:
Code:
1 2 3 4 5 6 7 8 9
| Sub NbJourEcart()
Dim i%
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) = Empty Then Cells(i, 3) = Empty
Else
Cells(i, 3) = Val(Format(CDate(Cells(i, 2)) - CDate(Cells(i, 1))))
End If
Next
End Sub |
Impec, ça fonctionne comme il faut. J'ai 183 pour la ligne 2, -29 pour la ligne 3 et rien pour la ligne 4.
J'ai ensuite transposé ce code dans mon fichier de production. Les colonnes sont différentes (la 1 devient la 8, la 2 devient la 9 et la 3 devient la 11) mais la logique est identique.
J'obtiens malheureusement un erreur Type Mismatch sur la ligne où le Val est appliqué.
Je me dis que cela vient des dates disponibles dans les colonnes 8 et 9, ce qui me semble être la piste à suivre car, j'ai un mélange de DD/MM/YYY et DD-Mon-YYYY
au format US (je ne parle pas uniquement d'interprétation d'affichage mais bien de valeur contenu dans le champ!). Cela vient de l'extraction du système contenant ces données, là je n'y peux rien.
J'ai du coup tenté de forcer ce contenu en voulant appliquer le format DD/MM/YYYY aux colonnes 8 et 9. Certains posts sur le net parle de cela:
Code:
1 2 3 4
| Dim cellule As Range
For Each cellule In Range(Cells(LastRow, 8), Cells(LastRow, 9))
cellule.Value = Format(cellule.Value, "dd/mm/yyyy")
Next cellule |
Je dois avouer que cela ne m'a pas aidé car l'erreur surgit toujours (toujours sous une forme Custom côté format). A ce demander s'il ne faudrait pas remplacer -Jan- par /01/, -Feb- par /02/, etc.
J'ai checké mes paramètres régionauxet je ne vois rien de spécial.
Pièce jointe 290598
Je suis également aller consulter la page de Didier Gonard mais je n'ai pas réussi à faire le pont avec mon besoin.
Si quelqu'un a une piste ou voit un pb de code, il ou elle est le bienvenu.
Cordialement,
Camille