Reconnaissance du format date macro excel

Résolu
Bonjour,

Alors voilà, j'ai créé une base de données qui importe des formulaires, mais j'ai le format de chaque colonne contenant des dates n'est plus reconnu. Ma demonstration a simplement consisté à soustraire 2 dates, ou faire un networdays sur 2 dates, et le résultat est le même: "#VALUE!". C'est assez embêtant sachant que j'ai besoin de faire une macro filtre sur les date...

J'ai donc essayé de rajouté une macro de convertion de format:

Sub convertir()
Dim Lig As Long, Drlig As Long

With Sheets("BDD")
Drlig = .Range("BD" & Rows.Count).End(xlUp).Row
For Lig = 4 To Drlig
If IsNumeric(.Cells(Lig, 56)) Then
.Cells(Lig, 56) = CDbl(.Cells(Lig, 56))
End If
If IsNumeric(.Cells(Lig, 60)) Then
.Cells(Lig, 60) = CDbl(.Cells(Lig, 60))
End If
If IsNumeric(.Cells(Lig, 5)) Then
.Cells(Lig, 5) = CDbl(.Cells(Lig, 5))
End If

Next
.Columns("BH:BH").NumberFormat = "0.00%"
.Columns("BD:BD").NumberFormat = "0.00%"
.Columns("BC:BC").NumberFormat = "0.00"
.Columns("BE:BE").NumberFormat = "0.00"
.Columns("E:E").NumberFormat = "d/M/yy"
End With
End Sub

Sans succès, le format ne veut toujours être reconnu... :(

Si quelqu'un a une astuce pour régler ce problème, celà m'aiderait beaucoup!
Merci.



--
Cordialement,
L. L.

2 réponses

  1. Bon, j'ai finallement trouvé la solution, je vais donc l'expliquer, ça pourrait servir à d'autres.

    A la place de:

    If IsNumeric(.Cells(Lig, 5)) Then

    .Cells(Lig, 5) = CDbl(.Cells(Lig, 5))

    End If

    Mettre plutôt:

    If IsDate(.Cells(Lig, 5)) Then

    .Cells(Lig, 5) = CDate(.Cells(Lig, 5))

    End If
    Et voilà le format est reconnu!

    0
    1. J'oubliai: J'ai mis en gras les lignes du code spécifique à la colonne date, le reste du code concerne d'autre colonne et fonctionne normalement.
      0

      Discussions similaires

      question pix mot caché

      7 réponses