Bonjour à tous,
Je sais que le sujet qui me pose problème a été maintes fois discuté, mais je n'ai pas trouvé la solution qui me convient.
J'ai un fichier csv avec quelques colonnes qui comportent des dates, au format texte évidemment, dd.mm.yyyy
Une des premières chose que je demande à ma macro est de sélectionner les colonnes concernées et de remplacer les points (.) par des slash (/). Ceci ayant pour effet de transformer le format texte en format date.
Si j'effectue cette opération manuellement, (ctrl+H et remplacer) cela ne pose aucun problème, j'obtiens une liste de dates au format dd/mm/yyyy.
Si j'effectue cette tâche via le code suivant:
'Range("D,E:E,AF:AF,AH:AH,AJ:AJ,AN:AN,AP:AP,AR:AR").Select
'Selection.NumberFormat = "dd/mm/yyyy"
'Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
' ReplaceFormat:=False
J'obtiens:
- pour les dates avant le 13 des mois: une date équivalente à mm/dd/yyyy, mais au format dd/mm/yyyy. Exemple: au départ ma date est 03.05.2010 (3 mai 2010). Après l'éxécution de la macro, elle est 05/03/2010 au format "francais" => 5 mars 2010....
- pour les dates après les 13 des mois: un texte dd/mm/yyyy ! (et non pas un format date, mais à la limite ca ne me gêne pas du tout)
Savez vous si le problème vient du code ?
Si oui que changer ?
Si non, y a-t-il une possibilité de faire ce que je souhaite autrement que manuellement ?
Merci d'avance à tous !
Louis
Je sais que le sujet qui me pose problème a été maintes fois discuté, mais je n'ai pas trouvé la solution qui me convient.
J'ai un fichier csv avec quelques colonnes qui comportent des dates, au format texte évidemment, dd.mm.yyyy
Une des premières chose que je demande à ma macro est de sélectionner les colonnes concernées et de remplacer les points (.) par des slash (/). Ceci ayant pour effet de transformer le format texte en format date.
Si j'effectue cette opération manuellement, (ctrl+H et remplacer) cela ne pose aucun problème, j'obtiens une liste de dates au format dd/mm/yyyy.
Si j'effectue cette tâche via le code suivant:
'Range("D,E:E,AF:AF,AH:AH,AJ:AJ,AN:AN,AP:AP,AR:AR").Select
'Selection.NumberFormat = "dd/mm/yyyy"
'Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
' ReplaceFormat:=False
J'obtiens:
- pour les dates avant le 13 des mois: une date équivalente à mm/dd/yyyy, mais au format dd/mm/yyyy. Exemple: au départ ma date est 03.05.2010 (3 mai 2010). Après l'éxécution de la macro, elle est 05/03/2010 au format "francais" => 5 mars 2010....
- pour les dates après les 13 des mois: un texte dd/mm/yyyy ! (et non pas un format date, mais à la limite ca ne me gêne pas du tout)
Savez vous si le problème vient du code ?
Si oui que changer ?
Si non, y a-t-il une possibilité de faire ce que je souhaite autrement que manuellement ?
Merci d'avance à tous !
Louis