Bonjour,
pour avoir une protection "utilisateur" sans en avoir au niveau du code VBA, pourquoi ne pas utiliser :
.Protect UserInterfaceOnly:=True
Comme cela au niveau du code VBA on n'a plus à se préoccuper de savoir si la feuille est protégée ou pas.
Alors oui il y a des exceptions je crois comme l'ajout d'un shape mais dans l'ensemble je pense que cela limite les problème dont celui-ci, non ?
Private Sub Worksheet_Change(ByVal Target As Range)
With Me
' .Range("C1:F1").ColumnWidth = 50 'largeur exagéré
.Protect MdP, UserInterfaceOnly:=True ' juste pour l'essai, on met la protection
.Range("C1:F1").EntireColumn.AutoFit
' For i = 3 To 6
' Columns(i).ColumnWidth = Application.Max(1, Columns(i).ColumnWidth - 1) 'éviter d'avoir une valeur négative
' Next i
End With
End Sub
J'ai commenté la boucle du fait qu'il y a des titres "OR Argent Bronze et 4ième place", donc avec l'autofit les colonnes ne seront pas proches de 0...
@ bientôt
LouReeD