Connaitre le mode d'acces a un fichier excel.

Résolu
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009 - 16 juil. 2008 à 12:20
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009 - 16 juil. 2008 à 16:58
Bonjour tout le monde.

Je réalise un application en vba dans laquelle je voudrais séparer la partie utilisateur de la partie admin du fichier.

Ce que je voudrais réaliser :
je possède un fichier excel avec deux onglets que je vérouille a l'aide d'un mot de passe.
Si l'utilisateur accede au fichier en lecture (donc non admin car il ne rentre pas le password pour l'acces en écriture ) l'onglet reservé al'administrateur n'apparait pas.
Si l'utilisateur est un admin, il a acces aux deux onglets.

J'aimerais savoir si il existe une fonction qui peut me dire si on a acces au fichier en écriture ( utilisateur admin ) ou en lecture ( utilisateur non admin ).
Car de cette manière je pourrais lancer une macro qui me "cacherais" certains onglets dans le classeur Excel en fonction du type d'acces.

Cela est-il possible? Si oui, y a t-il certains problèmes que l'on peut rencontrer?

Je vous remercie par avance de vos réponses.
Bonne journée.
-xaeris-

6 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 15:07
salut,

tu peux faire un UserForm afin de demander le mot de passe. S'il est bon, t'affiches les onglets, s'il n'est pas bon, vide, ou appuie sur Annuler, tu caches les fameux onglets.

Par contre, si quelqu'un passe la sécurité des macros à forte, ton code ne s'exécutera pas, donc le mieux c'est de les cacher d'origine, et tu les affiches suivant le mot de passe, et tu recaches à la fermeture du fichier

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
16 juil. 2008 à 15:34
Pour tester si ton fichier est en lecture/écriture, sinon, tu peux mettre dans l'Editeur VBE, dans ThisWorkbook, objet Workbook, évènement Open, le bout de code suivant :

MsgBox Application.ActiveWorkbook.ReadOnly

A l'ouverture du fichier, tu sauras quel est l'état du fichier.
Après, à toi d'adapter en fonction de tes besoins avec un

If Application.ActiveWorkbook.ReadOnly = true then
...

Par contre, même limitation que Mortalino de toutes façons pour la protection des macros.

Molenn
3
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
16 juil. 2008 à 15:22
c'est une trés bonne idée. Je peux faire comme tu me le propose en effet.
Je pensait juste pouvoir éviter a un admin de taper deux fois son mot de passe pour acceder a la modification du fichier.

Mais je pense que ta solution est tres correcte et bien pensée.

Juste une question :
Si l'admin met son mot de passe, j'affiche l'onglet supplémentaire. Il fait les modifications dont il a besoin et ferme le fichier.
Lors de la prochaine ouverture, ces onglets seront-ils visibles ou masqués ?

merci encore
-xaeris-
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 15:32
L'idéal, serait de les cacher par code, dans l'évènement BeforeClose du classeur.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 15:47
je pense pas que lecture / écriture est exactement ce qu'il veut.

Même si c'est pas quelqu'un qui à le mot de passe (et donc voir certains onglets), je suppose que le fichier doit pouvoir être enregistrable quand même sur les quelques onglets de dispo pour le simple utilisateur.

Enfin, je dis ça, mais c'est une supposition

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
16 juil. 2008 à 16:58
Disons que mon application est en fait une sorte d'annuaire, donc les utilisateur non admin n'auront rien a enregistrer...
Dans tous les cas je vais essayer les deux solutions, comme ca je pourrais voir celle qui convient le mieux.

Je vous remercie de vos réponses si rapides et si completes.
Je mets les deux réponse en acceptée car elles me satifont toutes les deux.
Encore merci.
-xaeris-
0
Rejoignez-nous