Protection et déprotection de feuilles via vba

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Géréginéflo
Le #24020331
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
MichD
Le #24021301
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)

Tr
Le #24022151
*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)

Maude Este
Le #24022371
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
Maude Este
Le #24022451
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
Tr
Le #24022741
*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)

Gloops
Le #24022941
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 ?
Maude Este
Le #24023131
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" !!!!!
Tr
Le #24025091
*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)

Publicité
Poster une réponse
Anonyme