Date stockée dans un Array variant, une fois comprise en US, une fois en FR

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Charly88

XLDnaute Occasionnel
Bonjour, encore et toujours les sempiternels problèmes liés au format de dates US, et là j'y perds mon latin et mon english.
Je n'ai pas vraiment espoir que quelqu'un puisse m'apporter une solution, je crains que ça ne soit une contrainte liée aux arrays mais sait-on jamais avec les Mac Gyver bienfaiteurs de ce forum...

Au départ, j'ai le 1er février 2013 en 8è position dans un tableau array : tTabInfo(8, 1)
L'array n'a pas de type défini et est donc variant, il contient pas mal de textes et quelques dates.
Je suis moi-même en paramétrage régional Français, ma cellule est format "dd/mm/yy" même si cela n'aucune réelle importance.


Je colle cette date en bloc avec d'autre info sur une ligne :
.Cells(i + 1, 1).Resize(UBound(tTabInfo, 2), UBound(tTabInfo, 1)).Value = Application.Transpose(tTabInfo)
Debug.Print Month(.Cells(i + 1, 8).Value)

= 1


Puis je tente de la colle seule, d'abord avec un cdate puis carrément sans et de manière inexplicable, ça fonctionne :
.Cells(i + 1, 8).Value = tTabInfo(8, 1)
Debug.Print Month(.Cells(i + 1, 8).Value)

= 2

Alors c'est très joli mais si j'utilise les arrays avec une copie en bloc, vous vous doutez que c'est pour aller vite, pas pour coller cellule par cellule.
La seule solution "facile" que je vois, c'est de ne pas régler le problème mais de tricher en inversant mois et jour avec :
tTabInfo(8, 1) = Format(CDate(tTabInfo(8, 1)), "mm/dd/yy")
.Cells(i + 1, 1).Resize(UBound(tTabInfo, 2), UBound(tTabInfo, 1)).Value = Application.Transpose(tTabInfo)
Debug.Print Month(.Cells(i + 1, 8).Value)

= 2


Mais c'est sale, je n'aime pas.
 
Re : Date stockée dans un Array variant, une fois comprise en US, une fois en FR

Bonjour Charly88

Le problème viens non pas de l'Array mais du transpose.

Essai comme ceci:
VB:
.Cells(i + 1, 1).Resize(UBound(tTabInfo, 2), UBound(tTabInfo, 1)).FormulaLocal = Application.Transpose(tTabInfo)

Cordialement
 
Dernière édition:
Re : Date stockée dans un Array variant, une fois comprise en US, une fois en FR

Bonjour.
Si ça ne résout pas cette saloperie de bogue, convertir en texte avec Format(LaDate, "dd mmm yyyy")
Avec plus de deux "m" pour qu'il soit obligé d'appliquer les lettres pour le mois, pas le choix…
Ce n'est pas que je sois fan du transtypage assumé en date après, mais là…
 
Re : Date stockée dans un Array variant, une fois comprise en US, une fois en FR

Bonsoir Charly88
Bonsoir le Fil
Bonsoir le Forum

je ne suis pas sur d'avoir tout compris Lol
mais voici ce que j'ai fait pas plus tard qu’aujourd’hui , pour régler mon problème d'inversion de Jour/Mois pour les dates transposées qui étaient avant le 13 du Mois .
a voir donc
Dans une des procédures sur lesquelles j’ai travaillé et ou j’ai rencontré le problème d’inversion de Jour/mois .
J’ai fais ainsi(à tester )
je transpose le tableau a partir de la Cellule A2
.Cells(2, 1).Resize(UBound(Tab_Recup, 2) + 1, UBound(Tab_Recup, 1)) = Application.Transpose(Tab_Recup)

Puis ensuite je formate la colonne 3 au format anglo-saxon

.Columns(3).NumberFormat = "mm/dd/yyyy"

Et ainsi je n’ai plus eu de problème de mois inversé avec les dates avant le 13 du mois (a tester chez vous)

Bonne fin de Soirée
Amicalement
Jean marie
 
Re : Date stockée dans un Array variant, une fois comprise en US, une fois en FR

Bonsoir,

Attention! Problème d'inversion jour/mois pour les dates avec versions < à 2007

Avec Value2, les dates ne sont pas inversées (Laeticia90)

[A1].Resize(UBound(a, 1), UBound(a, 2)).Value2= a

JB
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
2 K
Retour