2 pièce(s) jointe(s)
un truc bien bizarre dont j'aimerais bien quelque explication
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:ptdr:
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:
1 2 3
| Public Function convertDATE1(cel)
convertDATE1 = CDate(Replace(cel.Text, ".", "/"))
End Function |
la 2d
Code:
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:
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)
Pièce jointe 338714
bien maintenant testons la 2d fonction
Code:
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
Pièce jointe 338718
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