OVH Cloud OVH Cloud

Macros désactivées et accès Classeur

10 réponses
Avatar
p.i.
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne
donner accès qu'à certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open -
cependant l'utilisateur peut contourner la manip en refusant l'execution des
macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.

10 réponses

Avatar
Olivier Derrez
Le 10/10/2004, p.i. a supposé :
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne
donner accès qu'à certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open - cependant
l'utilisateur peut contourner la manip en refusant l'execution des macros à
l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.


Quelle version d'Excel utilises-tu ?

--
Olivier
"La vie, c'est comme une boîte de chocolat..."

Avatar
Olivier Derrez
p.i. a exprimé avec précision :
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne
donner accès qu'à certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open - cependant
l'utilisateur peut contourner la manip en refusant l'execution des macros à
l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.


Suite du post précédent. Ta version d'Excel fait partie de quel package
Office (Standard, Pro, etc.) ?

--
Olivier
"La vie, c'est comme une boîte de chocolat..."

Avatar
Philippe.R
Bonjour,
Tu peux ajouter en tête du classeur une feuille d'accueil avec une mention comme :
"Désolé, vous devez activer les macros pour utiliser ce classeur ; veuillez maintenant le fermer puis
l'ouvrir en les activant."
dans le module thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Accueil").Visible = True
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

et

Private Sub Workbook_Open()
For i = 2 To Sheets.Count
Sheets(i).Visible = True
Next i
Sheets("Accueil").Visible = xlVeryHidden
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"p.i." a écrit dans le message de news:
4168dfc9$0$17863$
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne donner accès qu'à certaines
d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open - cependant l'utilisateur peut
contourner la manip en refusant l'execution des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas activées ?

Merci de votre réponse.

Pierre.



Avatar
Joël GARBE
Bonjour Philippe,

Intéressant, je vais m'en inspirer pour une appli.

Question, quel est l'intérêt du Private Sub Workbook_BeforeClose si le
classeur n'est pas sauvegardé ?

Te remerciant de tes commentaires...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:

Bonjour,
Tu peux ajouter en tête du classeur une feuille d'accueil avec une mention
comme :
"Désolé, vous devez activer les macros pour utiliser ce classeur ;
veuillez maintenant le fermer puis l'ouvrir en les activant."
dans le module thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Accueil").Visible = True
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

et

Private Sub Workbook_Open()
For i = 2 To Sheets.Count
Sheets(i).Visible = True
Next i
Sheets("Accueil").Visible = xlVeryHidden
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"p.i." a écrit dans le message de news:
4168dfc9$0$17863$
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles,
ne donner accès qu'à certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open -
cependant l'utilisateur peut contourner la manip en refusant l'execution
des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.







Avatar
Philippe.R
Bonjour Joël,
Le Private Sub Workbook_BeforeClose assure, lorsque tu enregistres le classeur avant de le confier aux
utilisateurs, le masquage des feuilles sauf l'accueil ; le démasquage n'aura lieu que si l'utilisateur
active les macros.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Joël GARBE" a écrit dans le message de news:
4169073e$0$17783$
Bonjour Philippe,

Intéressant, je vais m'en inspirer pour une appli.

Question, quel est l'intérêt du Private Sub Workbook_BeforeClose si le classeur n'est pas sauvegardé ?

Te remerciant de tes commentaires...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:

Bonjour,
Tu peux ajouter en tête du classeur une feuille d'accueil avec une mention comme :
"Désolé, vous devez activer les macros pour utiliser ce classeur ; veuillez maintenant le fermer puis
l'ouvrir en les activant."
dans le module thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Accueil").Visible = True
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

et

Private Sub Workbook_Open()
For i = 2 To Sheets.Count
Sheets(i).Visible = True
Next i
Sheets("Accueil").Visible = xlVeryHidden
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"p.i." a écrit dans le message de news:
4168dfc9$0$17863$
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne donner accès qu'à
certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open - cependant l'utilisateur peut
contourner la manip en refusant l'execution des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas activées ?

Merci de votre réponse.

Pierre.











Avatar
p.i.
Bonjour Olivier,

La version Excel que j'utilise pour le besoin décrit dans mon post est
Microsoft(R)Excel 2000 (9.0.3821 SR-1)

sous système d'exploitation
Microsoft Windows 2000 Professionnel
Version 5.0.2195 Service Pack 5 version 2195


Y-aurait il possibilité de répondre au besoin décrit sans passer par une
Macro ?

Merci.



"Olivier Derrez" a écrit dans le message de news:

p.i. a exprimé avec précision :
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles,
ne donner accès qu'à certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open -
cependant l'utilisateur peut contourner la manip en refusant l'execution
des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.


Suite du post précédent. Ta version d'Excel fait partie de quel package
Office (Standard, Pro, etc.) ?

--
Olivier
"La vie, c'est comme une boîte de chocolat..."




Avatar
p.i.
Bonjour Philippe,

C'est effectivement une façon de faire intéressante, merci pour cette
information.

Pierre
Avatar
Joël GARBE
Re ;-)

Je pense que tu fais une légère erreur (à moins que ce ne soit moi qui en
fais !)

BeforeClose n'assure rien du tout si l'utilisateur répond NON au message :
voulez-vous enregistrer les modifications...

C'est pourquoi ta procédure fonctionne si tu ajoute :

ActiveWorkbook.Save

après les protections d'usage ;-)

Je n'aurai probablement pas la possibilité de te relire avant Lundi;

Bon après-midi

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:
%
Bonjour Joël,
Le Private Sub Workbook_BeforeClose assure, lorsque tu enregistres le
classeur avant de le confier aux utilisateurs, le masquage des feuilles
sauf l'accueil ; le démasquage n'aura lieu que si l'utilisateur active
les macros.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Joël GARBE" a écrit dans le message de news:
4169073e$0$17783$
Bonjour Philippe,

Intéressant, je vais m'en inspirer pour une appli.

Question, quel est l'intérêt du Private Sub Workbook_BeforeClose si le
classeur n'est pas sauvegardé ?

Te remerciant de tes commentaires...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:

Bonjour,
Tu peux ajouter en tête du classeur une feuille d'accueil avec une
mention comme :
"Désolé, vous devez activer les macros pour utiliser ce classeur ;
veuillez maintenant le fermer puis l'ouvrir en les activant."
dans le module thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Accueil").Visible = True
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

et

Private Sub Workbook_Open()
For i = 2 To Sheets.Count
Sheets(i).Visible = True
Next i
Sheets("Accueil").Visible = xlVeryHidden
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"p.i." a écrit dans le message de news:
4168dfc9$0$17863$
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles,
ne donner accès qu'à certaines d'entre elles pour un utilisateur
défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open -
cependant l'utilisateur peut contourner la manip en refusant
l'execution des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas
activées ?

Merci de votre réponse.

Pierre.















Avatar
p.i.
Exact Joël,

Maintenant la macro fonctionne correctement.

Merci.

Pierre.
Avatar
Philippe.R
Oui, tu as raison, il faut ajouter cette ligne pour que les feuilles soient effectivement masquées après
utilisation.
--
Amicales Salutations

"Joël GARBE" a écrit dans le message de news:
4169263e$0$16543$
Re ;-)

Je pense que tu fais une légère erreur (à moins que ce ne soit moi qui en fais !)

BeforeClose n'assure rien du tout si l'utilisateur répond NON au message : voulez-vous enregistrer les
modifications...

C'est pourquoi ta procédure fonctionne si tu ajoute :

ActiveWorkbook.Save

après les protections d'usage ;-)

Je n'aurai probablement pas la possibilité de te relire avant Lundi;

Bon après-midi

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:
%
Bonjour Joël,
Le Private Sub Workbook_BeforeClose assure, lorsque tu enregistres le classeur avant de le confier
aux utilisateurs, le masquage des feuilles sauf l'accueil ; le démasquage n'aura lieu que si
l'utilisateur active les macros.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Joël GARBE" a écrit dans le message de news:
4169073e$0$17783$
Bonjour Philippe,

Intéressant, je vais m'en inspirer pour une appli.

Question, quel est l'intérêt du Private Sub Workbook_BeforeClose si le classeur n'est pas sauvegardé
?

Te remerciant de tes commentaires...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Philippe.R" a écrit dans le message de news:

Bonjour,
Tu peux ajouter en tête du classeur une feuille d'accueil avec une mention comme :
"Désolé, vous devez activer les macros pour utiliser ce classeur ; veuillez maintenant le fermer
puis l'ouvrir en les activant."
dans le module thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Accueil").Visible = True
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

et

Private Sub Workbook_Open()
For i = 2 To Sheets.Count
Sheets(i).Visible = True
Next i
Sheets("Accueil").Visible = xlVeryHidden
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"p.i." a écrit dans le message de news:
4168dfc9$0$17863$
Bonjour,

Je souhaite dans un classeur de plusieurs feuilles reliées entre elles, ne donner accès qu'à
certaines d'entre elles pour un utilisateur défini.
Cette selection se fait à l'ouverture du classeur - Workbook Open - cependant l'utilisateur peut
contourner la manip en refusant l'execution des macros à l'ouverture, d'où ma question:

Peut-on interdire l'accès à un classeur si les macros ne sont pas activées ?

Merci de votre réponse.

Pierre.