Activer macro par défaut

Fermé
EviLapin - 30 mai 2018 à 16:18
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 2 juin 2018 à 19:04
Bonjour,


J'ai un fichier Excel avec un USERFORM pour gérer les accès utilisateurs, avec login et mot de passe par utilisateur, à destination des membres de mon service.

Chaque utilisateur a des accès différents. Certains ont accès à certaines feuilles, d'autre non. Le Directeur a accès à presque toutes les feuilles et moi, comme administrateur, j'ai accès à toutes les feuilles.

Le problème est que, chez les personnes qui ouvrent le fichier Excel, les macros sont désactivées. Les personnes ont donc accès à toutes les feuilles ! Il faut seulement qu'elles cliquent dans "AVERTISSEMENT DE SECURITE. Les macros ont été désactivées" sur "ACTIVER LE CONTENU" pour que le USERFORM se lance et que les personnes n'aient plus accès qu'à la Feuille 1.

Ce qui, vous pouvez l'imaginer, est assez gênant.

Comment faire pour que, dans ce fichier, quel que soit l'utilisateur, les macros soient déjà directement activées à l'ouverture ?

Je vous remercie pour votre aide.

EviLapin



A voir également:

2 réponses

rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
30 mai 2018 à 16:46
Bonjour,

vous pouvez utiliser les macros suivantes à mettre dans votre : Thisworkbook

Private Sub Workbook_open()
For k = 1 To Sheets.Count
Sheets(k).Visible = True
Next
Sheets("Home").Visible = 2
Sheets("Listes").Visible = 2
Application.DisplayAlerts = False

If Application.UserName <> "Votre nom de user admin" Then
ActiveWorkbook.ChangeFileAccess (xlReadOnly)
Else
Sheets("Home").Visible = True
Sheets("Listes").Visible = True
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Home").Visible = True

For k = 1 To Sheets.Count
If Sheets(k).Name <> "Home" Then
Sheets(k).Visible = 2
End If
Next
If ActiveWorkbook.ReadOnly = False Then
ActiveWorkbook.Save
Else
ActiveWorkbook.Close False
End If
End Sub

Cette macro cache en visible=2 les pages lors de la fermeture du fichier et sauvegarde.
Lors de la réouverture, si les macro ne sont pas activées, les pages sont invisibles (impossible de les afficher).
J'avais également mis la modification autorisée que pour moi-même.

En espérant que cela vous soit utile.
Bonne fin de journée
0
ça marche super :)
Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
31 mai 2018 à 09:13
Bonjour à tous,

@rEVOLV3r je vois que tu as fait des recherches mais peux-tu expliquer comment tu exécutes tes macros si elles sont désactivées ?

@EviLapin Tu as là le problème de la sécurité par macro car si l'utilisateur les désactive elles ne fonctionnent pas (Jusqu'à preuve du contraire !)
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
31 mai 2018 à 09:32
Alors en fait a la fermeture du programme, toutes les pages se cachent (pas activables par l user depuis les onglets) et le fichier s enregistre. Lors de l ouverture, si les macros ne sont pas activées, impossible de visualiser les onglets cachés. Des que les macros sont activées la peocedure workbook open se lance et decache certaines pages.
C est le seul moyen que j avais trouvé pour eviter que tout le monde ait acces aux infos des autres pages. Apres...faut le dire, si la personne connait un peu excel elle peut sans autre visualiser ce qu elle veut. Meme avec le code verouillé par mot de passe...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
2 juin 2018 à 19:04
Bonjour,

si la personne connait un peu excel elle peut sans autre visualiser ce qu elle veut.
Tu as tout compris !
Je reste persuadé, même si j'ai réalisé un module de protection assez sophistiqué qui m'avait été demandé, que les protections sont des procédures plus contraignantes qu'efficaces.
Lorsque je sors de chez moi, je ferme à clé (sinon l'assurance ne fonctionne pas !) mais comme j'ai de grandes baies vitrées, ceux qui veulent vraiment rentrer n'ont pas besoin de clés, seulement d'un marteau. ;-)

Lorsqu'il y a dans un classeur des informations que certains ne doivent pas avoir, la seule solution c'est de ne pas les diffuser !
Un "directeur" devait partager un classeur avec sa secrétaire mais elle ne devait pas avoir la feuille 2 qu'il fallait protéger. La solution en sécurité absolue trouvée c'était bien sûr un classeur partagé avec la secrétaire et un autre non diffusé où l'on agglomère les informations souhaitées.

Pourtant le web regorge des demandes de protection et cela me fait bien rire de voir l'énergie déployée.

Bonne soirée à toi et ta direction sera rassurée avec cela.
0