Merci Dan pour ton intention.
Je viens de trouver et remanier un code, et ça semble bien bien marcher. (efface les macros, userformes, procédures... tout en permettant d'en garder certaines intactes).
Si ça peut servir à d'autres !
Sub erase_macros()
Dim VBCOMPE As Object
For Each VBCOMPE In ThisWorkbook.VBProject.VBComponents
If VBCOMPE.Name <> "Feuille dans laquelle on veut garder intacte la ou les macros" Then
Select Case VBCOMPE.Type
Case 1 To 3
ThisWorkbook.VBProject.VBComponents.Remove VBCOMPE
Case Else
With VBCOMPE.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
End If
Next VBCOMPE
End Sub