Protéger ou déprotéger plusieurs feuilles en même temp?

Bonjour,
existe-t-il une fonction pour protéger ou déprotéger plusieurs (voire toutes) feuilles dans un classeur ?
Sinon, avez-vous une macro pour le faire ?
Cela me serait utile car pour modifier un style dans un classeur, il faut que toutes les feuilles soient déprotégées, et cela devient fastidieux quand il y a une vingtaine de feuilles !
Merci de vos retours.

Bonjour Chian,

voici une fonction que j’utilise :

Function ProtectSheet(ByRef pSheet As Object, pProtect As Boolean, Optional pPwd As String) As Integer
'Protects or unprotects a sheet.
'Input:
'-- pSheet: the sheet object to protect
'-- pProtect: True to protect, False to unprotect
'-- pPwd: (optional) the password to apply. pPwd may be a blank string.
'         Defaults to a blank string.
'Output:
'-- -1 if pSheet is not set (Null),
'-- the Basic error code for the action (see LibO help, 'Basic programs debugging' topic),
'-- 0 if the execution was successful.

	Dim l_Err As Integer

	l_Err = -1
	If Not IsNull(pSheet) Then
	
		If IsMissing(pPwd) Then pPwd = ""
	
		On Local Error Resume Next
		If pProtect Then
			pSheet.protect(pPwd)
		Else
			pSheet.unprotect(pPwd)
		End If
		l_Err = Err
	End If

	ProtectSheet = l_Err
End Function 'ProtectSheet

Pour (dé)protéger toutes les feuilles du classeur, parcourez les feuilles (objet ThisComponent.Sheets()) et appliquez la fonction ci-dessus.
For Each oSheet In ThisComponent.Sheets()
    ProtectSheet(oSheet, True, "mdp") 'or False
Next oSheet

Il n’est pas nécessaire de sélectionner les feuilles une par une.

  • Sélectionnez-les toutes
    • avec la souris (clic sur le premier onglet de la feuille, Maj+clic sur le dernier onglet de la feuille) ou
    • en choisissant le menu Édition - Sélectionner - Sélectionner toutes les feuilles (Alt+D, E, T), et
  • choisissez le menu Outils - Protéger la feuille, OK (Alt+O, G, Entrée, Entrée).

Et pour déprotéger, choisissez le menu Outils - `Protéger la feuille`` (Alt+O, G).

en:
There is no need to select the sheets one by one.

  • Just select all of them
    • with the mouse (click on the first sheet tab, Shift+click on the last sheet tab) or
    • choosing menu Edit - Select - Select All Sheets (Alt+E, T, A), and
  • choose menu Tools - Protect Sheet, OK (Alt+T, S, Enter, Enter).

And to unprotect choose menu Tools - Protect Sheet.

2 Likes

Merci, la manip était évidente mais je ne l’avais pas testée.
Problème réglé.
Christian

1 Like