Sub importer()
Dim myPath As String, myFile As Variant
Dim wb As Workbook
Set OngletVierge = ActiveWorkbook.ActiveSheet
'permet de parcourir tous les fichiers d'un meme répertoire sans avoir à les sélectionner un par un
'**************************
Application.ScreenUpdating = True
'répertoire contenant les fichiers à traiter
myPath = "C:\Test\"
'extension des fichiers à traiter
myFile = Dir(myPath & "\*.xls*")
Do While myFile <> "" 'pour chaque fichier du répertoire
Set wb = Workbooks.Open(myPath & myFile)
wb.Activate
'MsgBox ("sélectionnez le fichier data à ouvrir")
''ouvre la boite de dialogue pour sélectionner le fichier à ouvrir
'Nomfile = Application.GetOpenFilename("Fichiers excel (*.xls),*.xls")
''OUVRE le fichier
'Workbooks.Open Nomfile
Set listeDate = Range("A2:A" & Range("A65536").End(xlUp).Row)
nbjour = listeDate.Count
Dernier = listeDate.Item(nbjour)
'boucle jusqu'au dernier jour pour inverser jour et mois d'un format date US à Européen si necessaire
For i = 2 To nbjour + 1
jour = Range("A" & i)
If Day(jour) = Month(Dernier) Then 'suppose que le dernier jour de la liste est dans le bon format: Jour/Mois/Année
'on rebascule en format date european
Range("A" & i) = DateSerial(Year(jour), Day(jour), Month(jour))
End If
Next i
'on affecte un seul format date à toute la colonne et on centre
listeDate.Select
Selection.NumberFormat = "dd/mm/yyyy"
Selection.HorizontalAlignment = xlCenter
'pour chaque jour de la liste, on cherche sa place dans le fichier "PosteVierge" et on recopie les data
For Each jour In listeDate
'MsgBox jour
With OngletVierge
Set ligne = .Columns("A:A").Find(CDate(jour))
If Not ligne Is Nothing Then
l = ligne.Row
Range("A" & jour.Row & ":H" & jour.Row).Copy (.Range("A" & l))
End If
End With
Next jour
'fermeture du fichier source
ActiveWindow.Close savechanges:=False
'libère la variable
myFile = Dir()
Loop
End Sub