Bonsoir MNR, voilà un code qui devrait te convenir que j'ai mis aussi dans le fichier joint mais sans commentaires.
Sub copiefeuille()
Dim rep, reponse As String
Dim wk, wk1 As Workbook
Dim i As Integer
Set wk = ActiveWorkbook''On définit le classeur où on va copier la feuille
1
fichier = Application.GetOpenFilename("Excel fichiers (*.xls), *.xls") 'Ouvre la fenêtre Ouvrir
On Error GoTo sortie
If filetoopen <> False Then
Workbooks.Open (CStr(fichier))
Set wk1 = ActiveWorkbook 'On définit le classeur qui vient d'être ouvert
GoTo 2 'rendez vous où est marqué le 2
Else: reponse = MsgBox("Il y a erreur", vbOKCancel, "ERREUR de FICHIER")
End If
If reponse = vbOK Then 'Si on réponds oui à la question
GoTo 1 'On revient au début
Else: GoTo sortie
End If
2
rep = InputBox("Veuillez indiquer le nom de la feuille que vous voulez copier")
'Test de la saisie
wk1.Activate
For i = 1 To Sheets.Count
If Sheets(i).Name = rep Then
GoTo copie
End If
Next i
If i = Sheets.Count + 1 Then
reponse = MsgBox("Vous n'avez pas saisi un bon nom de feuille", vbOKCancel, "ERREUR de NOM")
End If
If reponse = vbOK Then
GoTo 2
Else: GoTo sortie
End If
copie:
'On copie la feuille aprés la premiere du classeur
wk1.Sheets(i).Copy after:=wk.Sheets(1)
Application.CutCopyMode = False 'On vide le presse papier
enregistrer:
Application.DisplayAlerts = False'On évite les messages d'excel
wk.Save 'Enregistre le fichier
wk.Close 'on ferme le fichier
sortie:
End Sub
PS Si il y a n'importe quoi qui te pose problème ou si cela te convient fais le savoir sur ce même fil.