Empêcher la sélection de cellules

2 réponses
Avatar
rmill...
Bonjour,

J'utilise le code ci-dessous. Mais dans celui-ci je fais le tour de toutes =
les feuilles. N'y aurait-il pas un moyen d'en faire de m=C3=AAme sans faire=
le tour des feuilles comme pour tout le classeur d'une seule commande?

Merci =C3=A0 l'avance.

'***************************************************
For Each Sheet In Workbooks(Var_NomFichier).Sheets
If Sheet.EnableSelection =3D xlNoRestrictions Then
Sheet.Unprotect "allo"
Sheet.EnableSelection =3D xlNoSelection
Sheet.Protect "allo"
End If
Next

2 réponses

Avatar
MichD
Le 21/09/20 à 11:21, a écrit :
For Each Sheet In Workbooks(Var_NomFichier).Sheets
If Sheet.EnableSelection = xlNoRestrictions Then
Sheet.Unprotect "allo"
Sheet.EnableSelection = xlNoSelection
Sheet.Protect "allo"
End If
Next

Bonjour,
Même si tu n'as qu'une feuille dans un classeur, la procédure va
s'exécuter correctement.
Une autre manière d'écrire la même chose :
For Each Sheet In Workbooks(Var_NomFichier).Sheets
With Sheet
If .EnableSelection = xlNoRestrictions Then
.Unprotect "allo"
.EnableSelection = xlNoSelection
.Protect "allo"
End If
Next
Si tu veux le faire pour une seule feuille:
A ) si tu sais le nom de la feuille
With Workbooks(Var_NomFichier).Worksheets("SonNom")
If .EnableSelection = xlNoRestrictions Then
.Unprotect "allo"
.EnableSelection = xlNoSelection
.Protect "allo"
End If
End with
Au lieu d'écrire le nom de la feuille, tu peux aussi choisir d'utiliser
son index, c'est-à-dire sa position dans l'ordre des feuilles.
With Workbooks(Var_NomFichier).Worksheets(1)
Le reste du code.
MichD
Avatar
rmill...
Le lundi 21 septembre 2020 à 11 h 50 min 39 s UTC-4, MichD a écri t :
Le 21/09/20 à 11:21, a écrit :
For Each Sheet In Workbooks(Var_NomFichier).Sheets
If Sheet.EnableSelection = xlNoRestrictions Then
Sheet.Unprotect "allo"
Sheet.EnableSelection = xlNoSelection
Sheet.Protect "allo"
End If
Next
Bonjour,
Même si tu n'as qu'une feuille dans un classeur, la procédure v a
s'exécuter correctement.
Une autre manière d'écrire la même chose :
For Each Sheet In Workbooks(Var_NomFichier).Sheets
With Sheet
If .EnableSelection = xlNoRestrictions Then
.Unprotect "allo"
.EnableSelection = xlNoSelection
.Protect "allo"
End If
Next
Si tu veux le faire pour une seule feuille:
A ) si tu sais le nom de la feuille
With Workbooks(Var_NomFichier).Worksheets("SonNom")
If .EnableSelection = xlNoRestrictions Then
.Unprotect "allo"
.EnableSelection = xlNoSelection
.Protect "allo"
End If
End with
Au lieu d'écrire le nom de la feuille, tu peux aussi choisir d'utili ser
son index, c'est-à-dire sa position dans l'ordre des feuilles.
With Workbooks(Var_NomFichier).Worksheets(1)
Le reste du code.
MichD

Merci.