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