Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vous avez une explication ???

4 réponses
Avatar
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.

4 réponses

Avatar
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 ....
Avatar
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" a écrit dans le message de groupe de discussion :

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 ....
Avatar
milloche
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" a écrit dans le message de news:

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" a écrit dans le message de groupe de discussion :

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 ....



Avatar
Modeste
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 !!!!