Bonjour,
Je crois, à partir de la solution de Ti (fonction ConversionDate), être arrivé à une solution pas trés orthodoxe mais fonctionnelle :
-----------------------------------------------------------------------------------------
Function ConversionDate(ByVal DateTexte$) As Date
Dim SplitDate
SplitDate = Split(DateTexte, "/")
If CInt(SplitDate(0)) >= 12 Then
ConversionDate = DateSerial(SplitDate(2), SplitDate(1), SplitDate(0))
Else
ConversionDate = DateSerial(SplitDate(2), SplitDate(0), SplitDate(1))
End If
End Function
-----------------------------------------------------------------------------------------
Vous remarquerez que bête et méchant comme je suis, je me suis adapté tant bien que mal au bug de traitement entre les dates "transformées" par excel au format Français ou Anglais selon que le jour du mois est supérieur ou égal à 12 -> bascule en Anglais sinon on reste en Français.
Bien sûr, j'ai dû modifier la boucle incluse dans mon algo de traitement des informations telle que suit :
-----------------------------------------------------------------------------------------
For i = 1 To nb
Range("A" & i + 2).Value = col(i, 1)
Range("A" & i + 2).BorderAround Weight:=xlThin
Range("A" & i + 2).HorizontalAlignment = xlCenter
Range("B" & i + 2).Value = col(i, 2)
Range("B" & i + 2).BorderAround Weight:=xlThin
Range("B" & i + 2).HorizontalAlignment = xlCenter
Range("C" & i + 2).Value = col(i, 3)
Range("C" & i + 2).BorderAround Weight:=xlThin
Range("C" & i + 2).NumberFormat = "#,##0.00"
Range("D" & i + 2).Value = ConversionDate(col(i, 4))
Range("D" & i + 2).BorderAround Weight:=xlThin
Range("D" & i + 2).HorizontalAlignment = xlCenter
Range("E" & i + 2).Value = ConversionDate(col(i, 5))
Range("E" & i + 2).BorderAround Weight:=xlThin
Range("E" & i + 2).HorizontalAlignment = xlCenter
Range("F" & i + 2).Formula = "=RC[-1]-RC[-2]"
Selection.NumberFormat = "General"
Range("F" & i + 2).BorderAround Weight:=xlThin
Range("F" & i + 2).HorizontalAlignment = xlCenter
Next
-----------------------------------------------------------------------------------------
Là, comme vous pouvez le voir, pour les colonnes D et E j'utilise la fonction ConversionDate modifiée et pour le calcul du délai, en colonne F, j'utilise plutôt Range("F" & i + 2).Formula = "=RC[-1]-RC[-2]" car je me heurtais encore au même problème que j'ai contourné de façon certes pragmatique mais pas trés élégante (tant pis pour la beauté de la programmation) !
Reste que cette version restructurée ne fonctionne que sur Excel 2003 et je ne connais pas le moyen d'inclure dans mon code une détection de la version qui me permettrait de basculer selon la version vers mon code d'origine (supporté jusqu'à Excel version < 2003) et ce nouveau code purement compatible Excel 2003 ?
Comme l'affirme Ti, j'ai vraiment l'impression de réinventer la roue !
Merci de votre aide car je me suis largement appuyé dessus pour arriver à cette solution.
Gaston53,