Dates francaises/anglaises melangees via fonction

Bonnes fetes a tous !

Je refais appel a votre precieuse pour regler un probleme que je rencontre actuellement sur excel 2013 (en version anglaise). J'ai des cellules contenant plusieurs dates et une fonction qui me donne la plus ancienne de ces date. Je pense que la fonction repere bien la date la plus ancienne mais ne la recrit pas dans le bon format => ca donne n'importe quoi !

Je vous ai joint un petit exemple

La fonction est la suivante :

Function ancienneDate(dates As String) As Date

Dim tablDat, d1, dat As Date, i As Long

tablDat = Split(dates, vbLf)

ancienneDate = #12/31/9999#

For i = 0 To UBound(tablDat)

d1 = Split(tablDat(i), "/")

dat = DateSerial(d1(2), d1(0), d1(1))

If dat < ancienneDate Then ancienneDate = CDate(dat)

Next i

End Function

On sent bien qu'il y a un probleme dans la definition de la variable "ancienneDate", j'ai essaye d'inverser le mois/jour en jour/mois mais ce ne veut pas (ca remet automatiquement en mois/jour). Y a-t-il un moyen de "casser" cette pre determination du format de date ?

Je vous remercie de votre aide. N'hesitez pas a me demander si vous avez besoin d'autres informations.

17exemple.xlsm (13.41 Ko)

Bonjour,

Je ne comprends pas tout, mais ta fonction pourrait se résumer ainsi :

Public Function OldDate(rCell As Range) As Date
Dim tbl
Dim oldDt As Date, dt As Date
Dim i As Long

    oldDt = #12/31/9999#
    tbl = Split(rCell, vbLf)    ' Chr(10)

    For i = 0 To UBound(tbl)
        dt = CDate(tbl(i))
        If dt < oldDt Then OldDate = dt
    Next i

End Function

Ton résultat donne 03/01/17.

Mon résultat est 05/19/2016.

Quelle est le bon résultat?

Cdlt.

Bonjour,

Format de la cellule : jj/mm/aa

Function OldDate(dates As Range) As Date
    Dim tablDat, d1, dat As Date, i As Long
    Dim PetiteD
    PetiteD = "31/12/9999"
    tablDat = Split(dates, vbLf)
    For i = 0 To UBound(tablDat)
        date1 = tablDat(i)
        PetiteD = IIf((CDate(date1) < PetiteD), CDate(date1), PetiteD)
        OldDate = PetiteD
    Next i
End Function

Bonjour Patrick et Jean-Eric,

Merci pour votre aide, cela fonctionne tres bien.

Je vais enfin pouvoir avoir des donnees coherentes.

A+

Rechercher des sujets similaires à "dates francaises anglaises melangees via fonction"