Sub CreerFichier(F1 As Object, F2 As Object, copie As Boolean)
Dim s As Shape, n As Name
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
F1.Copy
With ActiveWorkbook
.ActiveSheet.UsedRange = F1.UsedRange.Value 'supprime les formules
Set F1 = .ActiveSheet
For Each s In F1.Shapes: s.Delete: Next s
F1.Cells.Validation.Delete 'flèches de validation
If copie Then
F2.Copy After:=F1
With .ActiveSheet
.Protect mdp, UserInterfaceOnly:=True 'voir le module MotDePasse
.UsedRange = F2.UsedRange.Value 'supprime les formules
For Each s In .Shapes: s.Delete: Next s
.Cells.Validation.Delete 'flèches de validation
Application.GoTo .[A1], True 'cadre la cellule
End With
End If
Application.GoTo F1.[A1], True 'cadre la cellule
For Each n In .Names 'supprime les noms définis
n.Visible = True 'facultatif, juste pour vérifier dans les fichiers créés
If Not n.Name Like "_xlfn.*" Then n.Delete
Next n
On Error Resume Next 'quand le fichier n'est pas ouvert
Workbooks(F1.Name & " " & F2.Name).Close False
On Error GoTo 0
.SaveAs ThisWorkbook.Path & "\" & F1.Name & " " & F2.Name
.Close
End With
End Sub