je suis tomber sur une discussion a la quelle j'ai répondu et j'ai décidé d'aller plus loin dans mes recherche
alors le sujet c'etait les dates
ah... les dates francais /americains /javanorusse

j'ai voulu par exemple transférer des dates au format "dd.mm.yyyy" d'une colonne a une autre en changeant le separateur textuel "." pour "/" et sans boucle

je me suis dit je vais faire une fonction public puis inserer la formules dans les cellules concernées jusque la rien de bien compliqué

mais la ou le bas blaisse c'est le format
et tout particulierement l'enorme coquille dans la fonction interne entre les formats dd/mm/yyyy" "m/d/yyyy" et enfin "mm/dd/yyyy" tout du moins les deux derniers

voila deux fonctions qui parraissent similaires mais il n'en est rien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Public Function convertDATE1(cel)
    convertDATE1 = CDate(Replace(cel.Text, ".", "/"))
 End Function
la 2d

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Public Function convertDATE2(cel)
     convertDATE2 = Replace(cel.Text, ".", "/")
 End Function
bon elle ne sont pas tres compliqué faut etre honnete

maintenant faisons quelques testes avec la fonction 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub test_convertedate1_1()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate1(RC[-1])"
        .Offset(0, 1).NumberFormat = "dd/mm/yyyy"
    End With
End Sub
'
Sub test_convertedate1_bis()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate1(RC[-1])"
        .Offset(0, 1).NumberFormat = "mm/dd/yyyy"
    End With
End Sub
'
Sub test_convertedate1_trois()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate1(RC[-1])"
        .Offset(0, 1).NumberFormat = "m/d/yyyy"
    End With
End Sub
et bien examinez le résultat avec la "bis" et trois" la 1ere n'en parlons pas nous connaissons ce soucis (francais/americain)
Nom : demo1.gif
Affichages : 615
Taille : 500,3 Ko

bien maintenant testons la 2d fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub test_convertedate2_1()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate2(RC[-1])"
        .Offset(0, 1).NumberFormat = "m/d/yyyy"
    End With
End Sub
'
Sub test_convertedate2_bis()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate2(RC[-1])"
        .Offset(0, 1).NumberFormat = "mm/dd/yyyy"
    End With
End Sub
'
Sub test_convertedate2_trois()
    With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
        .Offset(0, 1).FormulaR1C1 = "=convertdate2(RC[-1])"
        .Offset(0, 1).NumberFormat = "dd/mm/yyyy"
    End With
End Sub
examinez bien le resultat avec les 3
Nom : demo2.gif
Affichages : 627
Taille : 881,0 Ko

la celui qui me l'expliquera dans un language que je comprends méritera un + 1000
y a vraiment de quoi tourner en bourique non?
messieux a vous l'honneur