Sub ImportMeteo()
Dim Brut As Workbook, WSBrut As Worksheet, Dest As Workbook, WSDest As Worksheet
Dim MonTab, DerlBrut As Long, DerlDest As Long
FicImport = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
If FicImport <> False Then
Set Brut = Workbooks.Open(FicImport) 'ouverture du classeur source
Else
Exit Sub
End If
Set WSBrut = Brut.Worksheets(1) 'première page du fichier source
Set Dest = ThisWorkbook
Set WSDest = Dest.ActiveSheet 'feuille ouverte du classeur destination
'*** formatage en date française du fichier à importer
WSBrut.Columns("A:A").NumberFormat = "d/m/yy;@"
DerlBrut = WSBrut.Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du classeur source
With WSBrut.Range("A2:U" & DerlBrut)
'** creation d'un tableau avec les colonnes dans l'ordre
MonTab = Application.Index(.Value, Evaluate("row(1:" & DerlBrut - 1 & ")"), Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 21))
End With
DerlDest = WSDest.Range("A" & Rows.Count).End(xlUp).Row + 1 'première ligne vide du classeur destination
'*** copie du tableau dans le classeur destination sur la feuille ouverte
WSDest.Range("A" & DerlDest).Resize(UBound(MonTab, 1), UBound(MonTab, 2)) = MonTab
Brut.Close False ' fermeture du classeur source sans enregistrement des modifs
'*** formatage en date française du fichier reception
WSDest.Columns("A:A").NumberFormat = "d/m/yy;@"
WSDest.Columns("P:P").NumberFormat = "d/m/yy;@"
End Sub