1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
Public Function FileSearch(ByVal Title As String) As String
Dim fd As FileDialog
Dim FileName As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "Tous les fichiers Excel", "*.xl*"
.Title = Title
End With
If fd.Show = -1 Then FileName = fd.SelectedItems(1)
FileSearch = FileName
Set fd = Nothing
End Function
Public Sub ImportFile(ByVal FileName As String)
'
' ImportFile Macro
' Cette macro permet d'importer une feuille d'un autre classeur
'
Dim ImportedWb As Workbook
Dim intWs As Integer, i As Integer
Dim wasOpen As Boolean
Dim fName As String, dummy As String
'Recupération du nom de fichier
dummy = FileName
While Right(dummy, 1) <> "\"
fName = Right(dummy, 1) & fName
dummy = Left(dummy, Len(dummy) - 1)
Wend
wasOpen = False
With ThisWorkbook
'Supprimer l'éventuelle feuille Temp
On Error Resume Next
Application.DisplayAlerts = False
.Sheets("Temp").Delete
.Sheets("TemporarySortedSheet").Delete
Application.DisplayAlerts = True
On Error GoTo 0
intWs = .Worksheets.Count
If IsOpen(fName) Then
Set ImportedWb = Workbooks(fName)
wasOpen = True
Else
'ouverture du fichier
Set ImportedWb = Workbooks.Open(FileName)
End If
'Copie de la feuille à importer dans ce classeur
ImportedWb.Sheets(1).Copy After:=.Sheets(intWs)
'Fermeture fichier et libération de la variable
If Not wasOpen Then
ImportedWb.Close False
End If
Set ImportedWb = Nothing
'Renommer la feuille importée
.Sheets(intWs + 1).Name = "Temp"
'On créer une feuille pour le trie
.Worksheets.Add().Name = "TemporarySortedSheet"
End With
Set ImportedWb = Nothing
End Sub |
Partager