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
| Option Explicit
Sub b()
Dim Fic2Open As String, WBKSource As Workbook, nom As String
'--- sélection fichier
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False '--- 1 seul fichier
.InitialFileName = ThisWorkbook.Path
.Title = "Sélectionner 1 fichier"
.Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1
If .Show = -1 Then
Fic2Open = .SelectedItems.Item(1)
Else
Fic2Open = ""
End If
End With
'--- copie données
If Fic2Open = "" Then
MsgBox "Aucun fichier sélectionné", , "Pour info"
Else
nom = "Donnees"
Set WBKSource = Workbooks.Open(Fic2Open)
On Error Resume Next
WBKSource.Sheets(nom).Cells.Copy ThisWorkbook.Sheets(nom).Range("A1")
If Err.Number = 0 Then
On Error GoTo 0
If MsgBox("Supprimer la feuille " & nom & vbLf & _
"du fichier " & Fic2Open & " ?" & vbLf & _
"(suppression définitive, non récupérable)", vbYesNo, "A confirmer") = vbYes Then
Application.DisplayAlerts = False
WBKSource.Sheets(nom).Delete
Application.DisplayAlerts = True
WBKSource.Close True
Else
WBKSource.Close False
End If
Else
On Error GoTo 0
MsgBox "Pas de feuille '" & nom & "'" & vbLf & _
"dans le fichier " & Fic2Open & " !", , "Pour info"
WBKSource.Close False
End If
Set WBKSource = Nothing
End If
End Sub |
Partager