Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protection et déprotection de feuilles via vba

9 réponses
Avatar
Tr
Bonjour à tous,

j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

je cherche un moyen de déprotéger la feuille juste avant la mise à jour
puis de la reprotéger.

la pire des solutions que j'ai trouvée, c'est de déprotéger la feuille
sur l'évènement scroll du scrollbar, faire ma modif de cellule, puis
remettre la protection, laborieux!!!

je cherche un moyen plus global, du style:
sur la feuille, un évènement beforechange: déprotège, puis
afterchange:protege à nouveau.

quelles techniques sont utilisées pour gérer ce type de problème?

par avance merci de votre aide.

--
En politique, l'important n'est pas la victoire de son camp mais celle
de ses idées. (Conclusion)
tranquille.xav@gmail.com

9 réponses

Avatar
Géréginéflo
Bonjour,

J'aurai tendance à faire ceci pour résoudre le problème :

A l'ouverture du classeur exécuter dans la section : ThisWorkbook
Private Sub Workbook_Open()
ActiveSheet.Unprotect
End sub

A la fermeture du classeur dans la même section
Private Sub Workbook_Close()
Worksheets("Feuil1").Protect Password:="", Scenarios:=True
End sub

Ça devrait fonctionner

Cordialement

Le 01/12/2011 07:10, a écrit :
Bonjour à tous,

j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

je cherche un moyen de déprotéger la feuille juste avant la mise à
jour puis de la reprotéger.

la pire des solutions que j'ai trouvée, c'est de déprotéger la feuille
sur l'évènement scroll du scrollbar, faire ma modif de cellule, puis
remettre la protection, laborieux!!!

je cherche un moyen plus global, du style:
sur la feuille, un évènement beforechange: déprotège, puis
afterchange:protege à nouveau.

quelles techniques sont utilisées pour gérer ce type de problème?

par avance merci de votre aide.




--
Géréginéflo
Avatar
MichD
Bonjour,

Si la mise à jour de fait à l'aide d'une macro, alors tu peux protéger
ta feuille en insérant dans le ThisWorkbook du classeur ce bout de
code. Il te permettra de modifier la feuille à volonté par macro, mais
elle sera protégée contre toute intervention d'un usager.

Après la copie du code, tu devras exécuter cette ligne de code manuellement
ou fermer et ouvrir à nouveau ton fichier.
'---------------------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "MotDePasse", True, True, True, True
End With

End Sub
'---------------------------------


MichD
------------------------------------------
"" a écrit dans le message de groupe de discussion :

Bonjour à tous,

j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

je cherche un moyen de déprotéger la feuille juste avant la mise à jour
puis de la reprotéger.

la pire des solutions que j'ai trouvée, c'est de déprotéger la feuille
sur l'évènement scroll du scrollbar, faire ma modif de cellule, puis
remettre la protection, laborieux!!!

je cherche un moyen plus global, du style:
sur la feuille, un évènement beforechange: déprotège, puis
afterchange:protege à nouveau.

quelles techniques sont utilisées pour gérer ce type de problème?

par avance merci de votre aide.

--
En politique, l'important n'est pas la victoire de son camp mais celle
de ses idées. (Conclusion)

Avatar
Tr
*Ecrit* *par* **:
Bonjour à tous,

j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

je cherche un moyen de déprotéger la feuille juste avant la mise à
jour puis de la reprotéger.

la pire des solutions que j'ai trouvée, c'est de déprotéger la
feuille sur l'évènement scroll du scrollbar, faire ma modif de
cellule, puis remettre la protection, laborieux!!!

je cherche un moyen plus global, du style:
sur la feuille, un évènement beforechange: déprotège, puis
afterchange:protege à nouveau.

quelles techniques sont utilisées pour gérer ce type de problème?

par avance merci de votre aide.



merci donc pour vos pistes.
de mon côté, je ne suis pas resté inactif et voici ce que j'ai trouvé
quelque part et qui fonctionne nickel:

Private Sub Workbook_Open()
Dim wSheet
For Each wSheet In Worksheets
wSheet.Protect UserInterfaceOnly:=True
Next wSheet
end sub

ce qui correspond aux pistes que vous m'avez données.

avec ce code, tout est protégé, mais les macros peuvent modifier les
cellules.
le but étant de protéger d'une fausse manip (écrasement d'une cellule
avec formule par exemple) sans pour autant protéger le code, la feuille
etc par un mot de passe.
les scrollbar qui avaient des linkedcell, j'ai passé la synchro entre
le scrollbar et sa cellule dans vba, et tout est ok du coup.

merci encore pour tout

--
Va au bout. (Etat d'esprit)

Avatar
Maude Este
Bonsour®

"" a écrit
j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

?? pourquoi pas simplement protéger toute la feuille
et n'oter la protection QUE sur les cellules (liées) recevant les valeurs des
scrollbars
Avatar
Maude Este
Bonsour®

"" a écrit
j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

?? pourquoi pas simplement protéger toute la feuille
et n'oter la protection QUE sur les cellules (liées) recevant les valeurs des
scrollbars
Avatar
Tr
*Ecrit* *par* *Maude Este*:
Bonsour®

"" a écrit
j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"

?? pourquoi pas simplement protéger toute la feuille
et n'oter la protection QUE sur les cellules (liées) recevant les
valeurs des scrollbars



je trouvais plus simple de faire comme ça :-)
j'ai beaucoup de scrollbars, une trentaine.
la plupart d'entre-eux n'utilisent pas la propriété linkedcell car soit
on peut avoir des valeurs négatives et ça beugue (lorsqu'on passe en
dessous de 0, ça devient 65535), soit les valeurs sont entre 0,00 et
1,00, ou il me faut des 15,55 par exemple dans les cellules.
bref, peu de cellules linked donc du coup je les ai toutes enlevées
pour ne gérer les value que par code...

voilà

--
Nul n'est infaillible! (Vécu)

Avatar
Gloops
Géréginéflo a écrit, le 01/12/2011 08:47 :
Bonjour,

J'aurai tendance à faire ceci pour résoudre le problème :

A l'ouverture du classeur exécuter dans la section : ThisWorkbook
Private Sub Workbook_Open()
ActiveSheet.Unprotect
End sub

A la fermeture du classeur dans la même section
Private Sub Workbook_Close()
Worksheets("Feuil1").Protect Password:="", Scenarios:=True
End sub

Ça devrait fonctionner

Cordialement

Le 01/12/2011 07:10, a écrit :
Bonjour à tous,

j'ai un classeur avec une feuille
j'ai choisi de protéger la feuille
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreu r de
"lecture seule sur la cellule liée"

je cherche un moyen de déprotéger la feuille juste avant la mise à
jour puis de la reprotéger.

la pire des solutions que j'ai trouvée, c'est de déprotéger la f euille
sur l'évènement scroll du scrollbar, faire ma modif de cellule, pu is
remettre la protection, laborieux!!!

je cherche un moyen plus global, du style:
sur la feuille, un évènement beforechange: déprotège, puis
afterchange:protege à nouveau.

quelles techniques sont utilisées pour gérer ce type de problème ?

par avance merci de votre aide.







Bonjour,

Il y a une chose que je ne comprends pas bien, c'est à quoi ça sert d e
protéger la feuille si le classeur est fermé.


Pour une banque on pourrait gérer l'événement "arrivée du cambrio leur" :
ouvrir le coffre en grand.

A l'événement "départ du cambrioleur" : fermer le coffre, et geindr e
qu'on a été cambriolé, et d'ailleurs on ne comprend pas pourquoi.

Oui je sais je suis taquin mais quand même, c'est quand le classeur est
ouvert, que ça vaut le coup de protéger les données, non ?
Avatar
Maude Este
Bonsour®

"" a écrit
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"



j'ai beaucoup de scrollbars, une trentaine.

bref, peu de cellules linked donc du coup je les ai toutes enlevées pour ne
gérer les value que par code...



;o))) toutes enlevées ?????
pourtant l'erreur est "lecture seule sur la cellule liée" !!!!!
Avatar
Tr
*Ecrit* *par* *Maude Este*:
Bonsour®

"" a écrit
j'ai de nombreux scrollbar qui mettent à jour des cellules.
lorsque la feuille est protégée, le scrollbar génère une erreur de
"lecture seule sur la cellule liée"



j'ai beaucoup de scrollbars, une trentaine.

bref, peu de cellules linked donc du coup je les ai toutes enlevées
pour ne gérer les value que par code...



;o))) toutes enlevées ?????
pourtant l'erreur est "lecture seule sur la cellule liée" !!!!!



bin oui, du coup je les ai toutes enlevées...
l'autre erreur étant:
erreur d'exécution 1004:
la cellule ou le graphique est protégé et en lecteure seule :-)

--
Va au bout. (Etat d'esprit)