Vous avez une explication ???

Le
michdenis
Bonjour à toutes et à tous,

Voici un petit fichier, il y a un pépin sur la transformation
d'un format de date. Les explications sont dans le fichier
et le module de celui-ci. À priori, rien de bien compliquer !

http://cjoint.com/?bCqg5hE0PZ

Bonne journée,


Salutations.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Modeste
Le #18490241
Bonsour® michdenis
Voici un petit fichier, il y a un pépin sur la transformation
d'un format de date. Les explications sont dans le fichier
et le module de celui-ci. À priori, rien de bien compliquer !

http://cjoint.com/?bCqg5hE0PZ



;o))) parce que ... by design comme ils disent !!!.

la plage originelle est au format texte
ce que tu copies(valeur) en colonne A récupére ce format !!!
les "replaces" et autres "substitue" ne change pas ce format
OR .... ;o)))
26/01/2009 n'est pas une date au sens VBA US
et n'est pas reconnue comme telle par le process automatique d'interprétation de date EXCEL
et reste donc au format texte !!!!
un simple :
Rg.Value= Rg.Value aurait suffit pour que processus fasse son oeuvre


ce qui serait en fait arrivé si quelques dates avaient eu des valeurs telles que :
10.01.2009
01.13.2009
premier terme inferieur ou égale à 12 ET/OU second terme superieur à 12
;o)))
et t'aurai alors permit d'entrevoir l'explication

tsss.... tsss... l'alignement à gauche est symptomatique de ce probleme !!!!
mais avant d'avoir ce réflexe, je peux t'assurer que moi aussi j'ai souvent galéré devant ce comportement ....
michdenis
Le #18490821
Et bien Modeste, tu as parfaitement raison.
Pour un instant, j'avais oublié que même si la
modification des dates se faisait dans l'interface
de calcul, comme c'est en VBA, c'est le format
américain qui prévaut.
Comme dans mon exemple, les dates affichées
dans la feuille étaient le 26/01/2009, pour VBA
ce n'était pas des dates car ces dernières étaient
impossible dans le seul format qu'il connait soit
mm/dd/yyyy . En conséquence, pour excel, ces
dates étaient et demeuraient du texte.

Je dois être du pour des vacances ! ;-))

Merci pour ton aide-mémoire.


Salutations.




"Modeste"
Bonsour® michdenis
Voici un petit fichier, il y a un pépin sur la transformation
d'un format de date. Les explications sont dans le fichier
et le module de celui-ci. À priori, rien de bien compliquer !

http://cjoint.com/?bCqg5hE0PZ



;o))) parce que ... by design comme ils disent !!!.

la plage originelle est au format texte
ce que tu copies(valeur) en colonne A récupére ce format !!!
les "replaces" et autres "substitue" ne change pas ce format
OR .... ;o)))
26/01/2009 n'est pas une date au sens VBA US
et n'est pas reconnue comme telle par le process automatique d'interprétation de date
EXCEL
et reste donc au format texte !!!!
un simple :
Rg.Value= Rg.Value aurait suffit pour que processus fasse son oeuvre


ce qui serait en fait arrivé si quelques dates avaient eu des valeurs telles que :
10.01.2009
01.13.2009
premier terme inferieur ou égale à 12 ET/OU second terme superieur à 12
;o)))
et t'aurai alors permit d'entrevoir l'explication

tsss.... tsss... l'alignement à gauche est symptomatique de ce probleme !!!!
mais avant d'avoir ce réflexe, je peux t'assurer que moi aussi j'ai souvent galéré devant
ce comportement ....
milloche
Le #18499091
Bonjour
Le format de date reconnu par le VBA n'est-il pas
"m/d/yyyy" et non "mm/dd/yyyy"
Est-il ?
JMM

"michdenis"
Et bien Modeste, tu as parfaitement raison.
Pour un instant, j'avais oublié que même si la
modification des dates se faisait dans l'interface
de calcul, comme c'est en VBA, c'est le format
américain qui prévaut.
Comme dans mon exemple, les dates affichées
dans la feuille étaient le 26/01/2009, pour VBA
ce n'était pas des dates car ces dernières étaient
impossible dans le seul format qu'il connait soit
mm/dd/yyyy . En conséquence, pour excel, ces
dates étaient et demeuraient du texte.

Je dois être du pour des vacances ! ;-))

Merci pour ton aide-mémoire.


Salutations.




"Modeste"
Bonsour® michdenis
Voici un petit fichier, il y a un pépin sur la transformation
d'un format de date. Les explications sont dans le fichier
et le module de celui-ci. À priori, rien de bien compliquer !

http://cjoint.com/?bCqg5hE0PZ



;o))) parce que ... by design comme ils disent !!!.

la plage originelle est au format texte
ce que tu copies(valeur) en colonne A récupére ce format !!!
les "replaces" et autres "substitue" ne change pas ce format
OR .... ;o)))
26/01/2009 n'est pas une date au sens VBA US
et n'est pas reconnue comme telle par le process automatique d'interprétation de date
EXCEL
et reste donc au format texte !!!!
un simple :
Rg.Value= Rg.Value aurait suffit pour que processus fasse son oeuvre


ce qui serait en fait arrivé si quelques dates avaient eu des valeurs telles que :
10.01.2009
01.13.2009
premier terme inferieur ou égale à 12 ET/OU second terme superieur à 12
;o)))
et t'aurai alors permit d'entrevoir l'explication

tsss.... tsss... l'alignement à gauche est symptomatique de ce probleme !!!!
mais avant d'avoir ce réflexe, je peux t'assurer que moi aussi j'ai souvent galéré
devant
ce comportement ....



Modeste
Le #18499981
Bonsour® milloche

Le format de date reconnu par le VBA n'est-il pas
"m/d/yyyy" et non "mm/dd/yyyy"


;o)))
oui et non ....
le format reconnu est celui utilisé dans les options internationnales de Windows
et notament le séparateur.

;o))) ceci dit,
le "By design" est plutot assez pointu puisqu'il est capable discerner :
01/11/yyyy , 01/01/yyyy, 1/1/yyyy ,1/11/yyyy et 11/1/yyyy

cela est notament fabuleux quand on utilise l'assistant de conversion lors d'importation de données
il ignore même dans ce cas le séparateur !!!!
Publicité
Poster une réponse
Anonyme