Protection feuille avec les même critère qu'initialement
Bonjour,
Un document excel avec de smacro est protégé d'une certaine manière, (certaine cellule sont autorisé à l'écriture et à la modification et d'autre non), lorsque j'appel des macro je fait un .unprotect au début de la macro et un .protect à la fin or lorsque la macro a terminé son éxécution les "argument" de la protection ont changé et il protège toute la feuille et la cellule que l'on pouvais modifier au début sont impossible à selectionner alors qu'elles sont normalement en non protéger.
Je pense que le .protect +mdp affecte toute la feuille protège tout sans distinction, quel argument dois-mettre pour que je puisse insérer des cellules sur les partie non protéger, et que je puisse modifier le contenu des cellules non protéger initialement.
Merci d'avance.
Bonjour,
Voici les codes que j'utilise. Tu y trouveras surement ton bonheur.
Sub DeprotegeFeuilles()
' Déprotège toutes les feuilles du classeur
'On peut ajouter après unProtect le mot de passe si requis
'Si on protège les feuilles de cette façon, on peut mmodifier
'le contenu de la feuille PAR MACRO SEULEMENT sans se soucier
'que la feuille est protégée.
Application.ScreenUpdating = False
Application.EnableEvents = False ' désactive les macros évenementielles
For i = 1 To Sheets.Count
Sheets(i).Unprotect Password:=""
' Affiche les onglets
With ActiveWindow
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
Next i
Application.EnableEvents = True 'réactive les macros évenementielles
Application.ScreenUpdating = True 'active l'écran
End Sub Sub ProtegeFeuilles()
'On peut ajouter après Protect le mot de passe si requis
'Si on protège les feuilles de cette façon, on peut mmodifier
'le contenu de la feuille PAR MACRO SEULEMENT sans se soucier
'que la feuille est protégée.
Application.ScreenUpdating = False 'désactive l'écran
Application.EnableEvents = False ' désactive les macros évenementielles
For i = 1 To Sheets.Count
Sheets(i).Protect Password:="", DrawingObjects:=True, Contents:=True, UserInterfaceOnly:=True
' Masque les onglets
With ActiveWindow
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
Next i
Application.EnableEvents = True 'réactive les macros évenementielles
Application.ScreenUpdating = True 'active l'écran
End SubCordialement