Reconnaissance du format date macro excel

Résolu
Bl4do Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -  
Bl4do Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -
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.


A voir également:

2 réponses

Bl4do Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   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
Bl4do Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   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