XL 2016 VBA : inversion de Date sur Range.Resize ... = Tableau après Transpose du Tableau

crocrocro

XLDnaute Impliqué
Bonjour à tous,
j'ai un problème d'inversion de date lors d'un vidage d'un tableau mémoire dans un tableau structuré suite à un Transpose du tableau mémoire.
Par exemple 05/07/2024 09:00 dans la feuille Feuil1 devient 07/05/2024 09:00 dans la feuille Feuil3
Voici le code ultra-réduit pour exposer mon problème.
VB:
Public Sub CopyTableau()
Dim T1() As Variant
Dim T1T() As Variant
Dim T2() As Variant

    T1 = Sheets("Feuil1").Range("Tableau1").Value
    
    'Copie de Tableau1 vers Tableau2 OK
    Sheets("Feuil2").Range("Tableau2").Resize(UBound(T1, 1), UBound(T1, 2)) = T1
        
    'Copie de Tableau1 vers Tableau3 KO
    T1T = Application.WorksheetFunction.Transpose(T1)
    ' dans le Transpose, on perd le format Date, transformé en String
    T2 = Application.WorksheetFunction.Transpose(T1T)
    ' T2 correspond à T1
    '    MAIS la date se retouve avec mois et jour inversés du fait de la transformation en String par le transpose
    Sheets("Feuil3").Range("Tableau3").Resize(UBound(T2, 1), UBound(T2, 2)) = T2
End Sub
Dans les 3 feuilles, la colonne date est avec le même format Date
1721462412892.png

Dans le Tableau T1 (non transposé, la date est bien au format date
1721462476920.png

Dans le Tableau T1T (transposition de T1), la date est au format String
1721462544398.png

Et bien sûr,
Dans le Tableau T2 (Transposition de T1T), elle est au format String
1721462623844.png


Un remarque :
J'utilise le Transpose à cause de la Contrainte du Redim Preserve (absent du code de l'exemple) qui ne peut se faire que sur la dernière (la 2ème) dimension.

Merci d'avance
 

Pièces jointes

  • PbDate.xlsm
    89.3 KB · Affichages: 1

crocrocro

XLDnaute Impliqué
Merci Job75,
et, comme souvent, mais pas toujours, la solution à un problème Excel tient à peu 2 choses (mauvais jeu de mots).
En bon élève, je suis allé voir la différence entre Value et Value2
La seule différence entre cette propriété et la propriété Value est que la propriété Value2 n’utilise pas les types de données Currency et Date .
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 087
Messages
2 116 083
Membres
112 654
dernier inscrit
SADIKA