Bonjour Hervé,
Quand on créé une feuille le Codename est unique et ne change jamais.
Si on ajoute des feuilles et qu'on supprime, à chaque fois un nouveau Codename est crée.
Si bien que la liste des Codename peut avoir "des trous", par ex Sheets(6) existe mais pas Sheets(5).
Il vaut mieux donc passer par la scrutation de toutes les feuilles qui lui ne s'intéresse pas au Codename, avec :
VB:
Sub Supression2()
Application.DisplayAlerts = False
On Error GoTo Fin
For Each Feuille In Worksheets
If Mid(Feuille.CodeName, 6) > 10 Then Feuille.Delete
Next Feuille
Exit Sub
Fin:
MsgBox Feuille & " n'existe pas "
End Sub
En PJ un ex avec trois boutons, un pour créer 10 feuilles, un pour votre macro, un pour la mienne.
Bonjour.
Non, je ne sais pas. Il faudrait que je connaisse la valeur de Sheets(i).CodeName. Mettez un espion dessus. Assez probable quand même qu'il y ait autre chose que des chiffres à partir de sa position 6.
Peut être serait mieux If Val(Mid(Sheets(i).CodeName, 6)) > 10 Then Sheets(i).Delete