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

formule qui active la protection d'une feuille ?

7 réponses
Avatar
Alfred WALLACE
Bonjour,
j'utilise un fichier excel pour que des personnes
s'inscrivent.

la politique de s=E9curit=E9 fait que, sur les postes de ces personnes
les macro ne sont pas actives.... (=E7=E0 m'=E9n=E8=E8=E8=E8=E8rrvvvvvv....=
)

serait-il possible d'imaginer une formule qui rend la
feuille non modifiable =E0 partir d'un certain nombre de valeurs dans
une colonne determin=E9e =E0 l'avance (la A:A par exemple) ?

Merci pour votre aide.

jos=E9

7 réponses

Avatar
DanielCo
Bonjour,
Colle la macro suivante dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountA([A:A]) = 3 Then 'valeur à modifier
ActiveSheet.Protect Password:="MotDePasse"
End If
End Sub

Modifie le mot de passe et le nombre de valeurs.
Cordialement.
Daniel


Bonjour,
j'utilise un fichier excel pour que des personnes
s'inscrivent.

la politique de sécurité fait que, sur les postes de ces personnes
les macro ne sont pas actives.... (çà m'énèèèèèrrvvvvvv....)

serait-il possible d'imaginer une formule qui rend la
feuille non modifiable à partir d'un certain nombre de valeurs dans
une colonne determinée à l'avance (la A:A par exemple) ?

Merci pour votre aide.

josé
Avatar
Modeste
Bonsour® DanielCo avec ferveur ;o))) vous nous disiez :

Bonjour,
Colle la macro suivante dans le module de la feuille :



heu ????
GROMITT à dit :
la politique de sécurité fait que, sur les postes de ces personnes
les macro ne sont pas actives.... (çà m'énèèèèèrrvvvvvv....)
Avatar
LSteph
Bonjour,

Une formule renvoie un résultat elle ne modifie pas la structure de la
feuille.
Mais même sans macro tu peux protèger ta feuille en déverrouillant
d'abord les cellules qui devront être utilisables.

Remarque "la politique de sécurité" elle a bon dos.
Je comprends bien que cela t'énnnerve. Si on interroge bien sûr ils
te disent que c'est voulu.
Chez moi avaient été livré pleins de nouveaux postes avec paramèt re
élévé . Par suite j'ai demandé à pouvoir modifier. Ca s'est arran gé.
Outils macros sécurité moyen.
Par suite, et là qu'on ne me parle pas d'une politique réfléchie,
dernièrement pour mettre en place une nouvelle config ils ont tout
changé dans un script à distance destiné à reconfigurer les postes
pour le réseau de nouvelles applis et upgrade et mises à jour
d'office. Mes utilisateurs ont paumé t les xlb et leurs persos (à
rechercher) et comble de danger j'ai retrouvé pire tous les offices
des postes dont j'assure la petite maintenance sur niveau de sécurité
faible.

Ce qui excède le périmêtre de leurs objectifs les autorise à rester
dans l'igorance ou le mépris (de fait les hauts penseurs n'ont rien à
cirer des utilisateurs vba)


Cordialement.

--
LSteph

On 14 fév, 11:25, Alfred WALLACE wrote:
Bonjour,
j'utilise un fichier excel pour que des personnes
s'inscrivent.

la politique de sécurité fait que, sur les postes de ces personnes
les macro ne sont pas actives.... (çà m'énèèèèèrrvvvvvv.. ..)

serait-il possible d'imaginer une formule qui rend la
feuille non modifiable à partir d'un certain nombre de valeurs dans
une colonne determinée à l'avance (la A:A par exemple) ?

Merci pour votre aide.

josé
Avatar
DanielCo
Bonjour Modeste,
Oui, c'est le sempiternel problème. La solution a été postée ici un
nombre incalculable de fois. L'ami GROMITT ne demande pas "comment
aider un peu ces gens à activer les macros", ou alors, j'ai mal
compris.
Daniel


Bonsour® DanielCo avec ferveur ;o))) vous nous disiez :

Bonjour,
Colle la macro suivante dans le module de la feuille :



heu ????
GROMITT à dit :
la politique de sécurité fait que, sur les postes de ces personnes
les macro ne sont pas actives.... (çà m'énèèèèèrrvvvvvv....)
Avatar
michdenis
Bonjour,

| serait-il possible d'imaginer une formule qui rend la
| feuille non modifiable à partir d'un certain nombre
| de valeurs dans une colonne determinée à l'avance
| (la A:A par exemple) ?

Bien sûr ! ;-) Bien que je n'ai pas testé la chose récemment !

Pour ouvrir ton classeur, tu crées un petit script de quelques lignes
que tu inscris dans l'application NotePad et tu enregistres le fichier
en ajoutant l'extension du fichier ".vbs" . Pour ouvrir ton fichier Excel
et exécuter le code d'une macro, tu n'as qu'à double-cliquer sur le
fichier .vbs ou choisir la commande du menu contextuel "ouvrir avec"
et tu retiens : "Microsoft Windows Based Script Host"

Voici un exemple de script :
Le chemin et le nom du classeur à ouvrir : "c:book1.xls"
Le nom de la macro dans un module standard : "MaMacro"
Tu devras adapter cela dans le script suivant :

Et si tu désirais limiter les déplacements possibles de l'usager dans
une feuille particulière, tu pourrais ajouter à la fin du script la ligne
de code suivante pour limiter les déplacements à l'intérieur de la plage A1:G25

Wk.worksheets("NomDeLaFeuille").ScrollArea = Range("A1:G25").Address


'--------------------------------
Dim Xl
set xl = createobject("Excel.application")
Xl.Visible = True
Xl.enableeventsúlse
set Wk = Xl.workbooks.open("c:book1.xls")
Xl.Run "MaMacro" ' dans un module standard
Xl.enableevents=true

'--------------------------------

MichD
--------------------------------------------
Avatar
Alfred WALLACE
Bonjour à tous ceux qui m'ont répondu .... alors... dans l'ordre ...

** merci michdenis pour ce petit exemple vbs, je le testerai pour le
fun, et çà donne
d'autres idées !

** Pour Daniel , merci pour ton exemple de macro, mais comme les
macros
sont désactivées sur les postes, c'est compliqué de compter sur le bo n
fonctionnement de ma macro, puisque la grande majorité des postes ne
sont
pas configurés (enfin le packoffice) pour executer les macro.
Et tu as parfaitement compris mon post initial, ne connais tous le
reste.

** pour Modeste
j'ai pas du tout compris le GROMITT (sauf pour la wallace biensur)


** pour lsteph (et eventuellement modeste)
une formule renvoie un résultat, certe.... mais, ce résultat
peut être une valeur booleenne non ? et donc, je me demandais
si il n'y avait pas moyen, par formule d'écrire un truc comme :
ActiveSheet.Protect.state = (résultat-vrai-dune-formule)

Pour ce qui est de la politique de sécurité de ma boite pour le SI,
disons
que je n'en suis qu'une victime parmis tant d'autres, ce qui ne veut
pas dire
que l'on puisse installer et faire tourner n'importe quoi sur nos
poste de
travail (on n'est pas chez mémé !)


Bon en attendant : bisous !

José



On Feb 14, 3:20 pm, "michdenis" wrote:
Bonjour,

| serait-il possible d'imaginer une formule qui rend la
| feuille non modifiable partir d'un certain nombre
| de valeurs dans une colonne determin e l'avance
| (la A:A par exemple) ?

Bien s r ! ;-) Bien que je n'ai pas test la chose r cemment !

Pour ouvrir ton classeur, tu cr es un petit script de quelques lignes
que tu inscris dans l'application NotePad et tu enregistres le fichier
en ajoutant l'extension du fichier ".vbs" . Pour ouvrir ton fichier Exce l
et ex cuter le code d'une macro, tu n'as qu' double-cliquer sur le
fichier .vbs ou choisir la commande du menu contextuel "ouvrir avec"
et tu retiens : "Microsoft Windows Based Script Host"

Voici un exemple de script :
Le chemin et le nom du classeur ouvrir : "c:book1.xls"
Le nom de la macro dans un module standard : "MaMacro"
Tu devras adapter cela dans le script suivant :

Et si tu d sirais limiter les d placements possibles de l'usager dans
une feuille particuli re, tu pourrais ajouter la fin du script la ligne
de code suivante pour limiter les d placements l'int rieur de la plage A1 :G25

Wk.worksheets("NomDeLaFeuille").ScrollArea = Range("A1:G25").Address

'--------------------------------
Dim Xl
set xl = createobject("Excel.application")
Xl.Visible = True
Xl.enableeventsúlse
set Wk = Xl.workbooks.open("c:book1.xls")
Xl.Run "MaMacro" ' dans un module standard
Xl.enableevents=true

'--------------------------------

MichD
--------------------------------------------
Avatar
LSteph
Bonjour,

:o)
Je ne vois pas ce que Mémé vient faire là dedans;
J'imagine bien que tu veux pas faire tourner n'importe quoi.

Commence peut être par leur exposer ton souci si c'est lié au bon
accomplissement d'une tache
Sinon.
Face au dédain de ta hierarchie informatique je te suggerais la manip qui
réactive les macros
Sauf s'ils ont volontairement inhibé ou bloqué on ne sait comment
l'execution de code sur les poste
(Ils pourraient simplement avoir négligé de changer le parametre par defaut
à la livraison)

Cela te serait tout autant possible et pas moins un contournement de leurs
dispositions
que d'executer un vbs

Si tu diffuse un classeur tu peux aussi en même temps y donner les
instructions à l'utilisateur qui vont bien avec

Ta suggestion
ActiveSheet.Protect.state = (résultat-vrai-dune-formule)


Ca c'est du VBA t'en veux pas t'as dit.

Enfin, sauf si tu changes d'avis ou passe par une de ces alternatives pour
le résoudre.... il me semble en outre qu'on a parfaitement compris ton
souci.

Cordialement.

--
LSteph


"Alfred WALLACE" a écrit dans le message de
news:
Bonjour à tous ceux qui m'ont répondu .... alors... dans l'ordre ...

** merci michdenis pour ce petit exemple vbs, je le testerai pour le
fun, et çà donne
d'autres idées !

** Pour Daniel , merci pour ton exemple de macro, mais comme les
macros
sont désactivées sur les postes, c'est compliqué de compter sur le bon
fonctionnement de ma macro, puisque la grande majorité des postes ne
sont
pas configurés (enfin le packoffice) pour executer les macro.
Et tu as parfaitement compris mon post initial, ne connais tous le
reste.

** pour Modeste
j'ai pas du tout compris le GROMITT (sauf pour la wallace biensur)


** pour lsteph (et eventuellement modeste)
une formule renvoie un résultat, certe.... mais, ce résultat
peut être une valeur booleenne non ? et donc, je me demandais
si il n'y avait pas moyen, par formule d'écrire un truc comme :
ActiveSheet.Protect.state = (résultat-vrai-dune-formule)

Pour ce qui est de la politique de sécurité de ma boite pour le SI,
disons
que je n'en suis qu'une victime parmis tant d'autres, ce qui ne veut
pas dire
que l'on puisse installer et faire tourner n'importe quoi sur nos
poste de
travail (on n'est pas chez mémé !)


Bon en attendant : bisous !

José



On Feb 14, 3:20 pm, "michdenis" wrote:
Bonjour,

| serait-il possible d'imaginer une formule qui rend la
| feuille non modifiable partir d'un certain nombre
| de valeurs dans une colonne determin e l'avance
| (la A:A par exemple) ?

Bien s r ! ;-) Bien que je n'ai pas test la chose r cemment !

Pour ouvrir ton classeur, tu cr es un petit script de quelques lignes
que tu inscris dans l'application NotePad et tu enregistres le fichier
en ajoutant l'extension du fichier ".vbs" . Pour ouvrir ton fichier Excel
et ex cuter le code d'une macro, tu n'as qu' double-cliquer sur le
fichier .vbs ou choisir la commande du menu contextuel "ouvrir avec"
et tu retiens : "Microsoft Windows Based Script Host"

Voici un exemple de script :
Le chemin et le nom du classeur ouvrir : "c:book1.xls"
Le nom de la macro dans un module standard : "MaMacro"
Tu devras adapter cela dans le script suivant :

Et si tu d sirais limiter les d placements possibles de l'usager dans
une feuille particuli re, tu pourrais ajouter la fin du script la ligne
de code suivante pour limiter les d placements l'int rieur de la plage
A1:G25

Wk.worksheets("NomDeLaFeuille").ScrollArea = Range("A1:G25").Address

'--------------------------------
Dim Xl
set xl = createobject("Excel.application")
Xl.Visible = True
Xl.enableeventsúlse
set Wk = Xl.workbooks.open("c:book1.xls")
Xl.Run "MaMacro" ' dans un module standard
Xl.enableevents=true

'--------------------------------

MichD
--------------------------------------------