Désolé dakama,
Je n'ai rien compris à ton classeur, il y a des liens partout pointant sur des éléments manquants... ce rébus va au-delà de mes compétences...
Cela dit, si je puis me permettre un conseil, sache qu'il est inutile (et même déconseillé) de procéder à un select d'une cellule ou d'une plage de cellules avant de la manipuler par le code VBA :
Par exemple, plutôt que :
Sheets(1).Range("A1:B25").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Il vaut mieux faire directement :
Sheets(1).Range("A1:B25").Borders(xlDiagonalDown).LineStyle = xlNone
Evidemment, pour simplifier le code il est préférable de définir au préalable une variable de type "Range" qui représentera la plage en question, pour t'en resservir tout au long de la procédure en lieu est place de Sheets(1).Range("A1:B25"), comme suit :
Dim MaPlage As Range
Set MaPlage = Sheets(1).Range("A1:B25")
With MaPlage
.Interior.ColorIndex = 16
.Interior.Pattern = xlSolid
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
etc...
Et pour en revenir à ma proposition précédente, si tu utilises le paramètre
UserInterfaceOnly = True à l'ouverture du classeur et que tu évites les
Select, tu n'as plus besoin de déprotéger la feuille avant traitement des cellules par macro ni besoin de la reprotéger ensuite.
Je te souhaite bon courage...
Cordialement.
Didier_mDF