Reconnaissance du format date macro excel

Résolu/Fermé
Bl4do Messages postés 37 Date d'inscription jeudi 15 septembre 2011 Statut Membre Dernière intervention 24 octobre 2011 - 29 sept. 2011 à 12:32
Bl4do Messages postés 37 Date d'inscription jeudi 15 septembre 2011 Statut Membre Dernière intervention 24 octobre 2011 - 30 sept. 2011 à 12:02
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.


2 réponses

Bl4do Messages postés 37 Date d'inscription jeudi 15 septembre 2011 Statut Membre Dernière intervention 24 octobre 2011 1
29 sept. 2011 à 12:34
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 jeudi 15 septembre 2011 Statut Membre Dernière intervention 24 octobre 2011 1
30 sept. 2011 à 12:02
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