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

Protection

13 réponses
Avatar
rthompson
Bonjour à toutes et tous

Petite question "Protection"

J'ai une feuille sur laquelle je ne veux pas que l'on change les cellules
manuellement
Tout se passe via bouton et macro

Je précise que les boutons sont des Toggle sur la feuille et pas dans un
menu

Si je fais une protection quand on click sur un bouton
Le code de celui-ci vuet changer les données dans certaines cellules
Et tout se bloque

Ma question est:


Comment faire pour empêcher les utilisateurs de toucher au cellules
Mais dans un même temps d'autoriser l'accès à ces cellules par macro?


D'avance merci et à bientôt

Rex

3 réponses

1 2
Avatar
Rex
Bonsoir


Problème résolu ;-)))))))

J'utilise la macro ci-dessous

Mais j'ai aussi "Unloclées" les cellules écrites par les Toggles

Merci à toi et à bientôt

Rex ;-))) )))




"JP25" a écrit dans le message de news:
eP1GGS#
Salut Rex
Je ne vois pas ce que tu veux faire avec cette ligne
If c.Value = Cells(5, "L") Then c.EntireRow.Hidden = Cells(5, "M")
Que s'ignifie "L" et "M"

--
Cordialement
JP25


"rthompson" a écrit dans le message de
news:
Bonjour et merci pour la réponse

Désolé de ne pas avoir réagit plus tôt, mais je viens de rentrer

J'ai ajouté les lignes mais il ne veut pas faire le boulot

Je ne tiens pas à protéger ma feuille pour des raison de sécurité
mais uniquement pour éviter une fausse manipulation

Je te joins ci-dessous un des codes bouton toggle

Si tu as le temps d'y jeter un oeil pour voir si j'ai mis tes lignes à
la


bonne place

D'avance meric et à bientôt

Rex


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub ToggleButton5_Click()
ActiveSheet.Unprotect
DoEvents
Application.ScreenUpdating = False
For Each C In Range("H6:H185")
If C.Value = Cells(5, "L") Then C.EntireRow.Hidden = Cells(5, "M")
Next
Application.ScreenUpdating = True
ToggleButton5.Caption = Cells(5, "M").Offset(0, -1)
ToggleButton5.BackColor = IIf(Cells(5, "M"), vbRed, vbGreen)
Range("H6").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True


End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





"JP25" a écrit dans le message de news:

Bonjour,
Tu inclus au début de ta macro
ActiveSheet.Unprotect
et avant la end sub de ta macro
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True




--
Cordialement
JP25


"rthompson" a écrit dans le message
de



news:
Bonjour à toutes et tous

Petite question "Protection"

J'ai une feuille sur laquelle je ne veux pas que l'on change les
cellules manuellement
Tout se passe via bouton et macro

Je précise que les boutons sont des Toggle sur la feuille et pas dans
un




menu

Si je fais une protection quand on click sur un bouton
Le code de celui-ci vuet changer les données dans certaines cellules
Et tout se bloque

Ma question est:


Comment faire pour empêcher les utilisateurs de toucher au cellules
Mais dans un même temps d'autoriser l'accès à ces cellules par macro?


D'avance merci et à bientôt

Rex

















Avatar
LSteph
;o))
C'est un Workbook_open()
cela ne fonctionnera qu'à la réouverture duclasseur

@+

lSteph

Bonsoir

Et ben non

J'ai toujours le même blocage

Mais ce n'est pas une catastrophe


Mais que je suis Con

Je viens de penser à un truc


Mâ qu'est-ce qu'il est malin le Rex, hein ;-))))

Comme les Toggle n'agisse qu'en écriture sur douze malheureuses petites
cellules
Ben, j'les ai "Unlockées"

Et maintnenat tout beigne

Ci dessous la macro que j'ai adapté
Il ne me faut protégé qu'une feuille


A bientôt et surtout MERCI


Rex ;-))) )))

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub Workbook_Open()
Sheets("Listings").Protect , userinterfaceonly:=True
Sheets("Menu").Select
Application.Caption = ThisWorkbook.path
Application.StatusBar = ThisWorkbook.FullName

End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx







"LSteph" a écrit dans le message de news:

Bonsoir,
Dois tu protèger une seule feuille ou plusieurs?
Quoi qu'il en soit j'ai décrit la méthode en détails à JPascal il me
début Aout avec un exemple..

le principe c'est dans le ThisWorkbook bdans l'évennement open
pour que cela soit actif chaque fois qu'on ouvre le classeur, (bien sur
, faut activer les macros)

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
sh.Protect Password:="mpfe", userinterfaceonly:=True
Next sh
End Sub


'lSteph



Bonsoir

Désolé de ne pas avoir répondu plus tôt

La vie a des exigences (Metro - Boulot - Poule-au-pot - Bordeaux -
Dodo)


Je viens (seulement) de voire la proposition de Pascal

Et, même si je la comprends) je ne vois ou je devrais l'insérer

J'ai l'intention de protéger la feuille par le menu Tools tou simplement
Comme cela si quelqu'un DOIT changer quelque chose il saura comment
faire


Mais si je comprends cette solution il faudra créer une macro pour la
protéger
Et je suppose une autre pour la déprotéger, non?

Donc quelque chose comme:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Macro2()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, userinterfaceonly:=True
ActiveSheet.Unprotect
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Mais même avec ceci, quand je "Toggle" il bloque ;-((

Quand je dis que le toggle ne fait que cacher ou afficher des lignes
ce n'est pas tout à fait juste
Il change la valeur des cellule en L et M aussi


Et voilà

Si l'un d'entre vous a une idée MERCI

Rex ;-))) )))





"lSteph" a écrit dans le message de news:

Bonjour,

PascalXLD t'a donné une excellente réponse ne la vois tu pas.

Utilise userinterfaceonly:=true en parametre de protect

Cordialement.

lSteph


On 31 août, 18:20, "rthompson"
wrote:
Bonjour et merci

Le toggle affiche et cache une ligne suivant le critère de la coloone M
Et la colonne L contient le message qui apparait sur le toggle

Ces toggles ne font rien d'autre qu'afficher ou cacher des lignes
Il y en a neuf en tout

A bientôt

Rex

"JP25" a écrit dans le message de news:
eP1GGS%

Salut Rex
Je ne vois pas ce que tu veux faire avec cette ligne
If c.Value = Cells(5, "L") Then c.EntireRow.Hidden = Cells(5, "M")
Que s'ignifie "L" et "M"
--
Cordialement
JP25
"rthompson" a écrit dans le message
de


news:
exA79596HHA.1__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$




05.phx.gbl...
Bonjour et merci pour la réponse
Désolé de ne pas avoir réagit plus tôt, mais je viens de rentrer
J'ai ajouté les lignes mais il ne veut pas faire le boulot
Je ne tiens pas à protéger ma feuille pour des raison de sécurité
mais uniquement pour éviter une fausse manipulation
Je te joins ci-dessous un des codes bouton toggle
Si tu as le temps d'y jeter un oeil pour voir si j'ai mis tes lignes
à





la
bonne place
D'avance meric et à bientôt
Rex
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub ToggleButton5_Click()
ActiveSheet.Unprotect
DoEvents
Application.ScreenUpdating = False
For Each C In Range("H6:H185")
If C.Value = Cells(5, "L") Then C.EntireRow.Hidden = Cells(5, "M")
Next
Application.ScreenUpdating = True
ToggleButton5.Caption = Cells(5, "M").Offset(0, -1)
ToggleButton5.BackColor = IIf(Cells(5, "M"), vbRed, vbGreen)
Range("H6").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
"JP25" a écrit dans le message de news:

Bonjour,
Tu inclus au début de ta macro
ActiveSheet.Unprotect
et avant la end sub de ta macro
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
--
Cordialement
JP25
"rthompson" a écrit dans le
message






denews:
uqDX5g66HHA.__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$






6.phx.gbl...
Bonjour à toutes et tous
Petite question "Protection"
J'ai une feuille sur laquelle je ne veux pas que l'on change les
cellules manuellement
Tout se passe via bouton et macro
Je précise que les boutons sont des Toggle sur la feuille et pas
dans







un menu
Si je fais une protection quand on click sur un bouton
Le code de celui-ci vuet changer les données dans certaines
cellules







Et tout se bloque
Ma question est:
Comment faire pour empêcher les utilisateurs de toucher au
cellules







Mais dans un même temps d'autoriser l'accès à ces cellules par
macro?





D'avance merci et à bientôt
Rex




















Avatar
Rex
Oui

Mais comme il ne devront jamais y toucher "logiquement"

Y a pas de soucis

Merci encore

Et si t'as des idées pour mes autres "derniers, j'espère" soucis

Fais-moi signe

A bientôt

Sinon bon week-end à toi

Rex



"LSteph" a écrit dans le message de news:

;o))
C'est un Workbook_open()
cela ne fonctionnera qu'à la réouverture duclasseur

@+

lSteph

Bonsoir

Et ben non

J'ai toujours le même blocage

Mais ce n'est pas une catastrophe


Mais que je suis Con

Je viens de penser à un truc


Mâ qu'est-ce qu'il est malin le Rex, hein ;-))))

Comme les Toggle n'agisse qu'en écriture sur douze malheureuses petites
cellules
Ben, j'les ai "Unlockées"

Et maintnenat tout beigne

Ci dessous la macro que j'ai adapté
Il ne me faut protégé qu'une feuille


A bientôt et surtout MERCI


Rex ;-))) )))

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub Workbook_Open()
Sheets("Listings").Protect , userinterfaceonly:=True
Sheets("Menu").Select
Application.Caption = ThisWorkbook.path
Application.StatusBar = ThisWorkbook.FullName

End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx







"LSteph" a écrit dans le message de news:

Bonsoir,
Dois tu protèger une seule feuille ou plusieurs?
Quoi qu'il en soit j'ai décrit la méthode en détails à JPascal il me
début Aout avec un exemple..

le principe c'est dans le ThisWorkbook bdans l'évennement open
pour que cela soit actif chaque fois qu'on ouvre le classeur, (bien sur
, faut activer les macros)

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
sh.Protect Password:="mpfe", userinterfaceonly:=True
Next sh
End Sub


'lSteph



Bonsoir

Désolé de ne pas avoir répondu plus tôt

La vie a des exigences (Metro - Boulot - Poule-au-pot - Bordeaux -
Dodo)


Je viens (seulement) de voire la proposition de Pascal

Et, même si je la comprends) je ne vois ou je devrais l'insérer

J'ai l'intention de protéger la feuille par le menu Tools tou
simplement




Comme cela si quelqu'un DOIT changer quelque chose il saura comment
faire


Mais si je comprends cette solution il faudra créer une macro pour la
protéger
Et je suppose une autre pour la déprotéger, non?

Donc quelque chose comme:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Macro2()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, userinterfaceonly:=True
ActiveSheet.Unprotect
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Mais même avec ceci, quand je "Toggle" il bloque ;-((

Quand je dis que le toggle ne fait que cacher ou afficher des lignes
ce n'est pas tout à fait juste
Il change la valeur des cellule en L et M aussi


Et voilà

Si l'un d'entre vous a une idée MERCI

Rex ;-))) )))





"lSteph" a écrit dans le message de news:

Bonjour,

PascalXLD t'a donné une excellente réponse ne la vois tu pas.

Utilise userinterfaceonly:=true en parametre de protect

Cordialement.

lSteph


On 31 août, 18:20, "rthompson"
wrote:
Bonjour et merci

Le toggle affiche et cache une ligne suivant le critère de la coloone
M





Et la colonne L contient le message qui apparait sur le toggle

Ces toggles ne font rien d'autre qu'afficher ou cacher des lignes
Il y en a neuf en tout

A bientôt

Rex

"JP25" a écrit dans le message de news:
eP1GGS%

Salut Rex
Je ne vois pas ce que tu veux faire avec cette ligne
If c.Value = Cells(5, "L") Then c.EntireRow.Hidden = Cells(5, "M")
Que s'ignifie "L" et "M"
--
Cordialement
JP25
"rthompson" a écrit dans le
message






de
news:





exA79596HHA.1__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$


05.phx.gbl...
Bonjour et merci pour la réponse
Désolé de ne pas avoir réagit plus tôt, mais je viens de rentrer
J'ai ajouté les lignes mais il ne veut pas faire le boulot
Je ne tiens pas à protéger ma feuille pour des raison de sécurité
mais uniquement pour éviter une fausse manipulation
Je te joins ci-dessous un des codes bouton toggle
Si tu as le temps d'y jeter un oeil pour voir si j'ai mis tes
lignes







à
la
bonne place
D'avance meric et à bientôt
Rex
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub ToggleButton5_Click()
ActiveSheet.Unprotect
DoEvents
Application.ScreenUpdating = False
For Each C In Range("H6:H185")
If C.Value = Cells(5, "L") Then C.EntireRow.Hidden = Cells(5, "M")
Next
Application.ScreenUpdating = True
ToggleButton5.Caption = Cells(5, "M").Offset(0, -1)
ToggleButton5.BackColor = IIf(Cells(5, "M"), vbRed, vbGreen)
Range("H6").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
"JP25" a écrit dans le message de news:

Bonjour,
Tu inclus au début de ta macro
ActiveSheet.Unprotect
et avant la end sub de ta macro
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
--
Cordialement
JP25
"rthompson" a écrit dans le
message






denews:







uqDX5g66HHA.__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$


6.phx.gbl...
Bonjour à toutes et tous
Petite question "Protection"
J'ai une feuille sur laquelle je ne veux pas que l'on change les
cellules manuellement
Tout se passe via bouton et macro
Je précise que les boutons sont des Toggle sur la feuille et pas
dans







un menu
Si je fais une protection quand on click sur un bouton
Le code de celui-ci vuet changer les données dans certaines
cellules







Et tout se bloque
Ma question est:
Comment faire pour empêcher les utilisateurs de toucher au
cellules







Mais dans un même temps d'autoriser l'accès à ces cellules par
macro?





D'avance merci et à bientôt
Rex






















1 2