Microsoft 365 Problème format date dans tableau

etpisculrien

XLDnaute Occasionnel
Bonjour à tous

J'ai besoin d'aide concernant une macro que je suis en train de réaliser. Je vous explique : J'ai plusieurs tableaux qui ont la même structure sur mon réseau et je souhaite récupérer les données de chacun d'eux dans un tableau synthétique. Pour cela j'utilise la création d'un tableau de données que je vais envoyer dans mon tableau de synthèse.
Jusqu'ici tout va bien, sauf que j'ai 2 colonnes avec des dates, l'une est parfaitement importée, et l'autre est importée au format US! Je ne comprends pas pourquoi et j'ai beau essayer plusieurs méthode pour formater la colonne, rien n'y fait, ça me met les date sous le format mm/jj/yy au lieu de jj/mm/yy.

Ci après un bout de mon code, si quelqu'un avait une solution?...

Sub Importation()
'Définition du chemin d'accès
racine = "\\192.168.168.168\share\TN\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossier = fs.GetFolder(racine)

'Recherche la première ligne vide pour coller les données
LigneCopie = Sheets("Synthèse").ListObjects("TableauSynthèse").ListRows.Count + 17
'Suppression des lignes existantes
Rows("18:" & LigneCopie).Select
Selection.Delete Shift:=xlUp

FichierMACRO = ThisWorkbook.Name

Application.ScreenUpdating = False

For Each d In dossier.SubFolders
For Each f In d.Files
If f.Name = "Suivi d'affaires.xlsx" Then
'Recherche la première ligne vide pour coller les données
LigneCopie = Sheets("Synthèse").ListObjects("TableauSynthèse").ListRows.Count + 18

'Ouvre le fichier "Suivi affaires"
Workbooks.Open Filename:=f, Password:="eriscom"
nomfichierRAPPORT = f.Name
nomfeuilRAPPORT = "Devis"
'Défini le tableau à garder en mémoire
TABdonnees = Workbooks(nomfichierRAPPORT).Sheets(nomfeuilRAPPORT).Range("TableauDevis")

With Workbooks(nomfichierRAPPORT).Sheets(nomfeuilRAPPORT).Range("TableauDevis").Columns(11)
.NumberFormat = "dd/mm/yyyy"
End With

'Colle le tableau en mémoire dans synthèse à partir de la première ligne vide
Workbooks(FichierMACRO).Sheets("Synthèse").Cells(LigneCopie, 1).Resize(UBound(TABdonnees, 1), UBound(TABdonnees, 2)) = TABdonnees

Application.EnableEvents = False
Workbooks(nomfichierRAPPORT).Close
Application.EnableEvents = True
Erase TABdonnees
End If
Next
Next
Application.ScreenUpdating = True

End Sub
 
Solution
Bon ben en fait, j'ai trouvé tout seul comme un grand ;)

Voilà ma solution (pour ceux que ça intéresse) :

For Each d In dossier.SubFolders
For Each f In d.Files
If f.Name = "Suivi d'affaires.xlsx" Then
'Recherche la première ligne vide pour coller les données
LigneCopie = Sheets("Synthèse").ListObjects("TableauSynthèse").ListRows.Count + 18

'Ouvre le fichier "Suivi affaires"
Workbooks.Open Filename:=f, Password:="eriscom"
nomfichierRAPPORT = f.Name
nomfeuilRAPPORT = "Devis"
'Défini le tableau à garder en mémoire
TABdonnees =...

etpisculrien

XLDnaute Occasionnel
Merci merinos

ça semble effectivement très intéressant mais je t'avoue que je ne suis pas un pro du VBA, et encore moins dans l'utilisation du PowerQuery. Je vais étudier ta vidéos mais j'ai peur de mettre trop de temps à comprendre et à appliquer dans mon cas de figure.

Mais je te remercie vraiment, je vais pouvoir apprendre une nouvelle chose...

Si quelqu'un a une pise en VBA, je suis preneur tout de même... Merci
 

etpisculrien

XLDnaute Occasionnel
Bon ben en fait, j'ai trouvé tout seul comme un grand ;)

Voilà ma solution (pour ceux que ça intéresse) :

For Each d In dossier.SubFolders
For Each f In d.Files
If f.Name = "Suivi d'affaires.xlsx" Then
'Recherche la première ligne vide pour coller les données
LigneCopie = Sheets("Synthèse").ListObjects("TableauSynthèse").ListRows.Count + 18

'Ouvre le fichier "Suivi affaires"
Workbooks.Open Filename:=f, Password:="eriscom"
nomfichierRAPPORT = f.Name
nomfeuilRAPPORT = "Devis"
'Défini le tableau à garder en mémoire
TABdonnees = Workbooks(nomfichierRAPPORT).Sheets(nomfeuilRAPPORT).Range("TableauDevis")
'Converti colonne prévisionnelle en date FR
For i = LBound(TABdonnees) To UBound(TABdonnees)
TABdonnees(i, 12) = Format(TABdonnees(i, 12), "dd/mm/yy")
Next i

'Colle le tableau en mémoire dans synthèse à partir de la première ligne vide
Workbooks(FichierMACRO).Sheets("Synthèse").Cells(LigneCopie, 1).Resize(UBound(TABdonnees, 1), UBound(TABdonnees, 2)) = TABdonnees

'Fermeture du fichier
Application.EnableEvents = False
Workbooks(nomfichierRAPPORT).Close
Application.EnableEvents = True
Erase TABdonnees
End If
Next
Next

Merci à ceux qui se sont intéressés à mon post et à merinos pour son aide
 

Statistiques des forums

Discussions
299 952
Messages
1 980 339
Membres
207 061
dernier inscrit
nadirasalifou