Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

crocrocro

XLDnaute Occasionnel
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

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

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

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


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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…