Reconnaissance du format date macro excel
Résolu
Bl4do
Messages postés
40
Statut
Membre
-
Bl4do Messages postés 40 Statut Membre -
Bl4do Messages postés 40 Statut Membre -
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.
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.
A voir également:
- Macro date format
- Format epub - Guide
- Format dat - Guide
- Format apfs - Guide
- Format factory - Télécharger - Conversion & Codecs
- Format bin - Guide
2 réponses
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.
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!
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!