R1-
XLDnaute Junior
Bonjour,
J'ai une macro de traitement de données, je vous épargne le code complet, voici la partie qui va nous intéresser :
J'ai ajouté quelques "Cases" pour le contexte, mais celui qui nous intéresse, c'est la case "Date".
L'objectif de la macro est de prendre un tableau d'entrée chargé en cache et de remplir un tableau de sortie, lui aussi en cache. Cependant, le format de la date reste toujours en format US, même si toutes mes dates sont en format européen en entrée. Impossible d'obtenir des dates au format européen en sortie.
Dois-je formater le tableau en cache au moment de sa création ? Car même en formatant mes dates au moment de leur insertion dans le tableau, cela ne change rien.
C'est d'autant plus problématique que les dates inférieures à 12 sont mal interprétées : par exemple, le 5 janvier 2025 ressort en tant que 1er mai 2025. En revanche, toutes les dates supérieures à 12 ressortent normalement, mais sous format texte.
Bref, j'ai tout essayé, mais il m'est impossible d'obtenir des dates en cache au format européen.
Merci d'avance pour votre aide.
J'ai une macro de traitement de données, je vous épargne le code complet, voici la partie qui va nous intéresser :
VB:
Function ProcessFDG(inputData As Variant, headers As Object, outputHeaders As Variant) As Variant
Dim outputData() As Variant
Dim i As Long, j As Long
Dim outputRow As Long
' Initialiser le tableau de sortie avec les en-têtes
ReDim outputData(1 To UBound(inputData, 1), 0 To UBound(outputHeaders))
For j = 1 To UBound(outputHeaders)
outputData(1, j) = outputHeaders(j)
Next j
outputRow = 1
' Remplir le tableau de sortie en fonction des en-têtes
For i = 2 To UBound(inputData, 1) ' Ignorer la première ligne (en-têtes)
For j = 0 To UBound(outputHeaders)
If inputData(i, headers("Pièce comptable/Zone")) = "FSAS direct" Or inputData(i, headers("Pièce comptable/Zone")) = "FINC" Then GoTo NextIterration
Select Case outputHeaders(j)
Case "Country"
outputData(outputRow, j) = inputData(i, headers("Pièce comptable/Adresse de livraison/Pays"))
Case "Entity/Zone"
outputData(outputRow, j) = inputData(i, headers("Pièce comptable/Zone"))
Case "Date"
outputData(outputRow, j) = inputData(i, headers("Pièce comptable/Date de facturation"))
Case "Product Reference"
outputData(outputRow, j) = inputData(i, headers("Article/Référence"))
[...]
End Select
Next j
outputRow = outputRow + 1
NextIterration:
Next i
ProcessFDG = outputData
End Function
J'ai ajouté quelques "Cases" pour le contexte, mais celui qui nous intéresse, c'est la case "Date".
L'objectif de la macro est de prendre un tableau d'entrée chargé en cache et de remplir un tableau de sortie, lui aussi en cache. Cependant, le format de la date reste toujours en format US, même si toutes mes dates sont en format européen en entrée. Impossible d'obtenir des dates au format européen en sortie.
Dois-je formater le tableau en cache au moment de sa création ? Car même en formatant mes dates au moment de leur insertion dans le tableau, cela ne change rien.
C'est d'autant plus problématique que les dates inférieures à 12 sont mal interprétées : par exemple, le 5 janvier 2025 ressort en tant que 1er mai 2025. En revanche, toutes les dates supérieures à 12 ressortent normalement, mais sous format texte.
Bref, j'ai tout essayé, mais il m'est impossible d'obtenir des dates en cache au format européen.
Merci d'avance pour votre aide.