OVH Cloud OVH Cloud

macros obligatoires

20 réponses
Avatar
Quetzalcoatl
Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori insoluble.

--
Hasta luego

10 réponses

1 2
Avatar
ClémentMarcotte
T'as juste à te créer un certificat avec Selfcert.exe et de l'appliquer à ta
macro. Ensuite, il va suffire de les accepter un e et une seule fois en
cliquant sur "Toujours faire confiance à..."

<
"Quetzalcoatl" a écrit dans le message de
news:42c064b6$0$27265$
Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a
pas

accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui
a

refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori
insoluble.


--
Hasta luego






Avatar
anonymousA
Bonjour,

beaucoup de questions dont la solution est contradictoire.
Si tu veux empêcher quelqu'un, non pas d'acceder à un fichier , mais de
ne rien pouvoir faire avec (sauf s'il connait VBA et/ou est capable de
déplomber ton projet), il existe au moins 2 solutions. La 1ere, faire en
sorte que ton fichier soit du type macro complémentaire , c.à.d ecrire
thisworkbook.isaddin=true pour le présent fichier à sa fermeture p.e
dans le workbook_beforeclose.
Dans ces conditions lors du workbook_open de ce fichier , si les macros
ne sont pas activées, alors le fichier reste Addin=true et l'utilisateur
ne le voit pas sur le plan de travail. Si il active les macros, tu mets
dans le workbook_open l'instruction Thisworkbook.isaddinúlse.
La 2eme solution consiste à cacher toutes les feuilles sauf une ( la
feuille d'accueil p.e) et à ne les décacher que si l'utilisateur active
les macros, avec toujours pareil des instructions dans le workbook_open
pour les décacher.
Ppour lui présenter un message avant l'apparition de la boite de
dialogue "Activer les macros, ce n'est pas possible ( et c'est tant
mieux, sinon les amateurs de virus se régaleraient)
Quant à ta 3eme question, je ne suis pas sur de comprendre et ce en
raison des 2 premières questions. Si l'utilisateur n'a pas activé les
macros, à quoi celà sert t-il qu'il accède au fichier puisque semble
t-il celles paraissent indispensables à son fonctionnement optimal.


A+

Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori insoluble.

--
Hasta luego






Avatar
Quetzalcoatl
Merci pour ta réponse.
L'idée est d'inciter fortement à l'utilisation de macros des opérateurs qui,
sinon, pourraient créer des dégats dans le fichier, par exemple en faisant des
copier-coller intempestifs là où des macros ont été prévues pour faire le
travail proprement. Il ne s'agit cependant pas de faire du totalitarisme :-) ni
que l'ensemble résiste à une armada d'informaticiens armés jusqu'aux dents -;)
d'où l'idée n° 3 d'un simple message incitatif.

- Quel est l'effet de "thisworkbook.isaddin=true" ?
- Comment fait-on pour cacher / décacher les feuilles par VBA ?

Merci d'avance !

Bonjour,

beaucoup de questions dont la solution est contradictoire.
Si tu veux empêcher quelqu'un, non pas d'acceder à un fichier , mais de
ne rien pouvoir faire avec (sauf s'il connait VBA et/ou est capable de
déplomber ton projet), il existe au moins 2 solutions. La 1ere, faire en
sorte que ton fichier soit du type macro complémentaire , c.à.d ecrire
thisworkbook.isaddin=true pour le présent fichier à sa fermeture p.e
dans le workbook_beforeclose.
Dans ces conditions lors du workbook_open de ce fichier , si les macros
ne sont pas activées, alors le fichier reste Addin=true et l'utilisateur
ne le voit pas sur le plan de travail. Si il active les macros, tu mets
dans le workbook_open l'instruction Thisworkbook.isaddinúlse.
La 2eme solution consiste à cacher toutes les feuilles sauf une ( la
feuille d'accueil p.e) et à ne les décacher que si l'utilisateur active
les macros, avec toujours pareil des instructions dans le workbook_open
pour les décacher.
Ppour lui présenter un message avant l'apparition de la boite de
dialogue "Activer les macros, ce n'est pas possible ( et c'est tant
mieux, sinon les amateurs de virus se régaleraient)
Quant à ta 3eme question, je ne suis pas sur de comprendre et ce en
raison des 2 premières questions. Si l'utilisateur n'a pas activé les
macros, à quoi celà sert t-il qu'il accède au fichier puisque semble
t-il celles paraissent indispensables à son fonctionnement optimal.


A+

Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori
insoluble.

--
Hasta luego



--
Amicalement vôtre


Avatar
anonymousA
re,

bien que je sois en toute petite forme, ce soir, ( les pauvres twinley
et Kamel pourraient en attester), je fais mon dernier POST du soir.

Thisworkbook.isaddin=true fait en sorte que ton fichier ressemble aux
fichiers de type macro complémentaire bien que formellement , n'ayant
pas été enregistrés comme une macro complementaire , ils ne soient pas
d'extension .xla.
Ces fichiers ont la particularité lorsqu'on les ouvre, d'exister dans la
mémoire d'Excel mais de n'être pas visibles sur le plan de travail. Ils
existent cependant. Pour les rendre visibles sur le plan de travail, il
faut que leur propriété IsAddin soit égale à false. C'est ce que je te
proposais de faire dans la 1ere solution.

Pour rendre une feuille cachée, il y a 2 sortes de masquage:
le 1er,le masquage facile à démasquer par Format/Feuille/Afficher.
le 2nd, non accessible par Format/Feuille/Afficher.

Pour le 1er, il faut ecrire sheets(1).visible=xlsheethidden
Pour le 2nd, il faut ecrire sheets(1).visible=xlsheetveryhidden

Pour rendre la feuille vsible, écrire sheets(1).visible=true

Attention au fait qu'un classeur protégé a besoin d'être déprotégé pour
pouvoir acceder à la propriété visible de l'objet sheets.

A+

Merci pour ta réponse.
L'idée est d'inciter fortement à l'utilisation de macros des opérateurs qui,
sinon, pourraient créer des dégats dans le fichier, par exemple en faisant des
copier-coller intempestifs là où des macros ont été prévues pour faire le
travail proprement. Il ne s'agit cependant pas de faire du totalitarisme :-) ni
que l'ensemble résiste à une armada d'informaticiens armés jusqu'aux dents -;)
d'où l'idée n° 3 d'un simple message incitatif.

- Quel est l'effet de "thisworkbook.isaddin=true" ?
- Comment fait-on pour cacher / décacher les feuilles par VBA ?

Merci d'avance !


Bonjour,

beaucoup de questions dont la solution est contradictoire.
Si tu veux empêcher quelqu'un, non pas d'acceder à un fichier , mais de
ne rien pouvoir faire avec (sauf s'il connait VBA et/ou est capable de
déplomber ton projet), il existe au moins 2 solutions. La 1ere, faire en
sorte que ton fichier soit du type macro complémentaire , c.à.d ecrire
thisworkbook.isaddin=true pour le présent fichier à sa fermeture p.e
dans le workbook_beforeclose.
Dans ces conditions lors du workbook_open de ce fichier , si les macros
ne sont pas activées, alors le fichier reste Addin=true et l'utilisateur
ne le voit pas sur le plan de travail. Si il active les macros, tu mets
dans le workbook_open l'instruction Thisworkbook.isaddinúlse.
La 2eme solution consiste à cacher toutes les feuilles sauf une ( la
feuille d'accueil p.e) et à ne les décacher que si l'utilisateur active
les macros, avec toujours pareil des instructions dans le workbook_open
pour les décacher.
Ppour lui présenter un message avant l'apparition de la boite de
dialogue "Activer les macros, ce n'est pas possible ( et c'est tant
mieux, sinon les amateurs de virus se régaleraient)
Quant à ta 3eme question, je ne suis pas sur de comprendre et ce en
raison des 2 premières questions. Si l'utilisateur n'a pas activé les
macros, à quoi celà sert t-il qu'il accède au fichier puisque semble
t-il celles paraissent indispensables à son fonctionnement optimal.


A+


Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori
insoluble.

--
Hasta luego




--
Amicalement vôtre






Avatar
abcd
Pour ma part j'ai le sentiment que --si on ne peut effectivement pas
lancer un message à l'ouverture sans macro-- par contre on peut a prior i
quand même obtenir ton objectif: je te propose l'idée suivante. C'est un
point de vue qui consiste à prendre le problème à l'envers.

le message est toujours là mais la macro le fait disparaître. En ouvr ant
par défaut le classeur sur une feuille précise (qui ne contient que t on
message). Et masquer cette feuille dès lors que l'utilisateur a autoris é
la macro (avec l'événement open par exemple)
La propriété .visibleúlse permet cela et a été décrite d ans les
autres réponses.

Bien sûr il faut que la macro réactive cette feuille et la sélectio nne
avant les sauvegardes ! (événement BeforeSave)
Avatar
ChrisV
Bonjour

Commence à dater...
(2001-10-20 03:43:26)

http://groups.google.com/groups?q=Pour+utiliser+ce+classeur,+vous+devez+group:microsoft.public.fr.excel+author:ChrisV&hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm=%23WeS7KVWBHA.992%40tkmsftngp03&rnum=1


ChrisV


"Quetzalcoatl" a écrit dans le message de
news: 42c06c64$0$908$
Merci pour ta réponse.
L'idée est d'inciter fortement à l'utilisation de macros des opérateurs
qui,
sinon, pourraient créer des dégats dans le fichier, par exemple en faisant
des
copier-coller intempestifs là où des macros ont été prévues pour faire le
travail proprement. Il ne s'agit cependant pas de faire du totalitarisme
:-) ni
que l'ensemble résiste à une armada d'informaticiens armés jusqu'aux
dents -;)
d'où l'idée n° 3 d'un simple message incitatif.

- Quel est l'effet de "thisworkbook.isaddin=true" ?
- Comment fait-on pour cacher / décacher les feuilles par VBA ?

Merci d'avance !

Bonjour,

beaucoup de questions dont la solution est contradictoire.
Si tu veux empêcher quelqu'un, non pas d'acceder à un fichier , mais de
ne rien pouvoir faire avec (sauf s'il connait VBA et/ou est capable de
déplomber ton projet), il existe au moins 2 solutions. La 1ere, faire en
sorte que ton fichier soit du type macro complémentaire , c.à.d ecrire
thisworkbook.isaddin=true pour le présent fichier à sa fermeture p.e
dans le workbook_beforeclose.
Dans ces conditions lors du workbook_open de ce fichier , si les macros
ne sont pas activées, alors le fichier reste Addin=true et l'utilisateur
ne le voit pas sur le plan de travail. Si il active les macros, tu mets
dans le workbook_open l'instruction Thisworkbook.isaddinúlse.
La 2eme solution consiste à cacher toutes les feuilles sauf une ( la
feuille d'accueil p.e) et à ne les décacher que si l'utilisateur active
les macros, avec toujours pareil des instructions dans le workbook_open
pour les décacher.
Ppour lui présenter un message avant l'apparition de la boite de
dialogue "Activer les macros, ce n'est pas possible ( et c'est tant
mieux, sinon les amateurs de virus se régaleraient)
Quant à ta 3eme question, je ne suis pas sur de comprendre et ce en
raison des 2 premières questions. Si l'utilisateur n'a pas activé les
macros, à quoi celà sert t-il qu'il accède au fichier puisque semble
t-il celles paraissent indispensables à son fonctionnement optimal.


A+

Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a
pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier
?
Mieux encore, comment afficher un message à destination d'un opérateur
qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais
lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori
insoluble.

--
Hasta luego



--
Amicalement vôtre






Avatar
Modeste
Bonsour®
ChrisV wrote:
Commence à dater...
(2001-10-20 03:43:26)

http://groups.google.com/groups?q=Pour+utiliser+ce+classeur,+vous+devez+group:microsoft.public.fr.excel+author:ChrisV&hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm=%23WeS7KVWBHA.992%40tkmsftngp03&rnum=1


tu maîtrises excel pas trop mal ...
tu t'en sers depuis un moment ???
Portes-toi bien !!!
;o)))

Avatar
ChrisV
tu t'en sers depuis un moment ???


Uniquement pour me détendre, 5 minutes par ci, 5 minutes par là...
;-))


ChrisV


"Modeste" a écrit dans le message de news:
%
Bonsour®
ChrisV wrote:
Commence à dater...
(2001-10-20 03:43:26)

http://groups.google.com/groups?q=Pour+utiliser+ce+classeur,+vous+devez+group:microsoft.public.fr.excel+author:ChrisV&hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm=%23WeS7KVWBHA.992%40tkmsftngp03&rnum=1


tu maîtrises excel pas trop mal ...
tu t'en sers depuis un moment ???
Portes-toi bien !!!
;o)))






Avatar
Quetzalcoatl
Merci à tous, c'est bien ce que je cherchais (xlsheetveryhidden et tutti
quantti)

Bonsoir,

Comment faire pour interdire l'accès à un fichier XLS si l'opérateur n'a pas
accepté d'activer les macros à l'ouverture du fichier ?
Et comment afficher en plus un message à destination de l'opérateur, lui
indiquant qu'il doit accepter les macros pour pouvoir accéder au fichier ?
Mieux encore, comment afficher un message à destination d'un opérateur qui a
refusé les macros, lui indiquant qu'il doit utiliser les macros, mais lui
laissant de toute façon la possibilité d'accéder au fichier ?

Merci d'avance pour toute piste pour résoudre ce problème, a priori insoluble.


--
Veloma

Avatar
Quetzalcoatl
Merci, cela répond bien à ce que je voulais faire.
A un détail près cependant :
--> au moment de la fermeture du classeur, je me retrouve avec comme seul onglet
visible l'onglet 1, présentant dans une zone de texte le message d'instructions
d'utilisation du classeur : certes, on a tout fait pour, mais c'est troublant,
l'opérateur peut penser alors avoir perdu des données et refuser d'enregistrer,
perdant ainsi son travail de mise à jour.
Je pensais que "Application.ScreenUpdating = False" réglait cela, mais foin, en
tout cas pas chez moi (WXP, XL2000).
Une idée ?

Merci d'avance !

--
Ite et bene valete

Bonjour

Commence à dater...
(2001-10-20 03:43:26)


http://groups.google.com/groups?q=Pour+utiliser+ce+classeur,+vous+devez+group:mi

crosoft.public.fr.excel+author:ChrisV&hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm=%23WeS7KV
WBHA.992%40tkmsftngp03&rnum=1

1 2