Macro Excel : Accès restreint par onglet suivant utilisateur - VB/VBA/VBS - Programmation
Marsh Posté le 19-10-2010 à 14:38:16
Emetom a écrit : peut-être avec une table de corrsepondance qui reprendrait les utilisateurs, leur mot de passe et les onglets auquels ils ont accès, mais étant débutant en VBA je ne sais pas comment la mettre en place. |
je ne vois que ca aussi au plus simple.
Un onglet specifique, avec le nom du user, son mdp et les onglets auquel il a droit.
A l'ouverture, tu demandes le user et le mdp avec un userform "bateau"
Tu fais un filtre sur ton onglet avec les infos saisies
Et tu boucles sur les lignes filtrees pour afficher ou pas les onglets.
Marsh Posté le 19-10-2010 à 19:29:31
Salut,peut-être via Environ("USERNAME" ) ? et surtout pas Application.UserName.Voir aide en ligne
chercher dans http://www.google.fr/search?hl=fr& [...] =&gs_rfai=
Marsh Posté le 21-10-2010 à 17:35:21
Bonjour,
Merci pour votre réponse, je vous avoue que je n'ai pas tout compris.
En fait j'ai essayé de trouvé un moyen plus simple qui serait de cacher mes onglets (Région1, Région2, ..., Région11), mettre en mot de passe en cellule A1 de chacun, et suivant le mot de passe que rentre l'utilisateur l'onglet correspondant s'affichera.
J'ai donc écrit le code suivant :
Sub Macro1()
'Mise en place d'un mot de passe par Onglet Région
Dim Message$, Titre$, Def$, WS$, PassW$
'Saisie du mot de passe
Message = "Entrez un mot de passe :"
Titre = "Accès réservé"
Def = "*****"
Dim i As Byte
For i = 1 To 11
If Worksheets("Région" & i).Cells(1, 1).Value <> InputBox(Message, Titre, Def) Then
If Worksheets("Région" & i).Visible = True Then
Worksheets("Région" & i) = xlSheetHidden
End If
Else: Worksheets("Région" & i).Visible = xlSheetVisible
End If
Next i
End Sub
mais j'ai pas mal de problèmen dont le fait qu'il va me redemander le mot de passe 11 fois et je ne sais pas comment arrêter la boucle une fois qu'un onglet a été affiché.
Comme je vous l'ai dit, je me suis mis à VBA il y a exactement 2 jours et j'ai l'impression que ma tête va exploser !!!!
Donc merci d'avance pour votre aide, car là je suis pommé...
Marsh Posté le 21-10-2010 à 18:30:09
Faut le mettre dans le WorkBook_Open de ThisWorkBook et pas dans une macro d'un module.
Et perso j'aurais fait une feuille cachée, avec 3 colonnes. User, mot de passe, feuille
Imaginons que cette feuille cachée se nomme "DroitsUsers"
Code :
|
Et toi tu n'as qu'a remplir ta feuille DroitsUsers comme ca par exemple :
Utilisateur Mot de passe feuille autorisee |
Edit : a toi de gerer si le mot de passe est pas bon etc. Mais ca, ca fonctionne nickel
Si je rentre en user : toto
et en mdp : totomdp
il me planque toutes les feuilles sauf Feuil1 et me met dessus
Marsh Posté le 22-10-2010 à 11:49:29
Super génial, merci beaucoup c'est top!!!
Juste un petit supplément :
- Est-ce que je peux recacher les feuilles à cacher automatiquement quand on ferme le fichier ?
- Si une personne à accès à plusieurs feuilles et que je le mets à la suite genre
toto totomdp Feuil1
toto totomdp Feuil2
Il ne m'ouvre que la première feuille. Comment faire pour qu'elles s'ouvrent toutes en une fois ?
Merci d'avance pour ces nouvelles infos et en tous cas déjà merci BEAUCOUP pour la précédente réponse. En tant que débutant je trouve ça vraiment magique les possibilités qu'ouvrent VBA !!
(c'est mieux que Noël !!)
Marsh Posté le 22-10-2010 à 12:01:35
Mieux que Noel ? Ah non quand meme pas !!!
Alors j'avais pas vu la possibilité de plusieurs onglets... Mea Culpa.
Je regarde ca
Pour replanquer tout le reste... Mouai, je vois pas trop l'interet etant donné que quand tu ouvres le fichier, normalement rien ne s'affiche et que tu dois gerer le cas de mauvais mot de passe et donc fermer le fichier.
Mais si ca te rassure, pourquoi pas
Marsh Posté le 22-10-2010 à 12:12:34
En fait c'est juste que si un User qui a accès à l'onglet Region1 ferme le fichier après avoir regardé son onglet et qu'un autre User qui n'est pas sensé avoir accès à l'onglet Region1 l'ouvre derrière, ben il le vera... avant d'avoir cliqué sur le bouton pour rentrer son mot de passe et tout.
En tous cas merci pour la rapidité !
Marsh Posté le 22-10-2010 à 12:36:04
Non il ne le verra pas normalement. Le Application.Screenupdating=false fait que la feuille n'est pas visible. Il affiche la boite de dialogue avant de charger la feuille. Mais on va contourner le souci
Il te faut donc, un onglet qui se nomme "DroitsUsers" sur lequel tu definis en colonneA les users, en ColonneB les mdp et en ColonneC la feuille autorisee.
Sur la ligne1 tu mets les intitulés des colonnes, exemple : users, mdp, feuille
Donc tes infos commencent a la ligne2
Il te faut, justement pour répondre a ta question, un autre onglet qu'on va appeler "Vierge"
C'est sur celui la qu'on va atterir a l'ouverture du fichier, et qu'on va activer a la fermeture.
Code :
|
Code :
|
Marsh Posté le 22-10-2010 à 12:38:54
Fin des Edit
Donc si j'ai ce tableau :
Utilisateur Mot de passe feuille autorisee |
Si je rentre :
user : toto
mdp : totomdp
il m'affiche bien ET la Feuil1 ET la Feuil4
Et pas besoin que le tableau soit trié etc. La boucle recherche sur tout le tableau du début a la fin.
Et donc si tu as pigé le principe tu pourrais avoir le meme utilisateur Toto, mais avec un mdp pour région1 et un autre mdp pour région2 etc.
Marsh Posté le 26-10-2010 à 11:05:32
Pas de nouvelles, bonnes nouvelles.
Topic clos pour ma part.
Marsh Posté le 26-10-2010 à 11:33:36
Oui Oui Oui !!
Merci BEAUCOUP pour ton aide! tout fonctionne à merveilles
Marsh Posté le 17-04-2015 à 18:57:39
Bonjour à tous, bien que le sujet soit ancien j’espère que quelqu’un pourra m’aider. J’ai récemment commencé un travail sur une procédure d’achat, j’ai trouvé un programme qui correspondait plus ou moins à mes besoins que j’ai par la suite un peu modifié et souhaite maintenant le compléter par un principe d’utilisateur du fichier « Pass Word » (piéce jointe) que j'ai trouvé dans une discussion sur internet et se rapprochant de votre sujet. Je découvre tout juste les principes de VBA , j’ai essayé de copier ce qui se trouvait dans ce fichier mais problème :
- Toute mes feuilles n’apparaissent pas pour mon utilisateur bien que dans ma page « DroitsUsers » toutes les cases représentant les feuille soient cochés ( ce sont les pages « factures » et « carburant » .
- A l’ouverture, l’erreur d’exécution ‘9’ : l’indice n’appartient pas à la sélection apparait , dans le débogage apparait surligné en jaune ceci :
ActiveWorkbook.Sheets(Trim("" & R(1, c))).Visible = True
Ça fait maintenant plusieurs jours que je travaille sur ces problèmes mais je ne trouve aucune solutions, si quelqu’un pourrais m’éclairer , n'arrivant pas à mettre mon fichier vierge à disposition voici un lien où il est également posté:
http://www.developpez.net/forums/d [...] e-onglets/
Merci d'avance, cordialement.
Marsh Posté le 18-04-2015 à 23:44:10
Hello
J'ai pas regardé le fichier, suis avec mon tel, mais la variable 'c' renvoie quoi ?
Marsh Posté le 30-06-2015 à 16:22:25
SuppotDeSaTante a écrit : Fin des Edit
|
Bonjour
je viens littéralement de pomper le code généreusement proposé plus haut et tu es vraiment un as !
petite question supplémentaire : dans la liste des users peut on attribuer des droits de type "administrateur" pour avoir accès à tous les onglets sans avoir à rajouter une ligne de feuille autorisée à chaque ajout de nouvel onglet.
Marsh Posté le 30-06-2015 à 16:48:24
SuppotDeSaTante a écrit : Fin des Edit
|
Bonjour
je viens littéralement de pomper le code généreusement proposé plus haut et tu es vraiment un as !
petite question supplémentaire : dans la liste des users peut on attribuer des droits de type "administrateur" pour avoir accès à tous les onglets sans avoir à rajouter une ligne de feuille autorisée à chaque ajout de nouvel onglet.
Marsh Posté le 30-06-2015 à 23:25:45
Hello
Suis avec mon tél, comme toujours...
Mais, un truc comme ça devrait marcher.
A ajouter juste avant End If ligne 38
Code :
|
Tu remplaces "admin" et "MdpAdmin" en ligne 1 par les log et mdp que tu souhaites, en veillant bien à laisser les guillemets
Marsh Posté le 03-07-2015 à 16:34:14
SuppotDeSaTante a écrit : Hello
|
merci, juste un souci :
une fenetre s'ouvre dès l'ouverture du fichier "erreur de compilation, variable déja utilisée"
et le "For x = 1 "de la ligne "For x = 1 To ThisWorkbook.Sheets.Count" est surligné...
Marsh Posté le 03-07-2015 à 17:42:17
Ah oui suis con
Tu mets une autre lettre à la place de x
elseIf Worksheets("DroitsUsers" ).Cells(x, 1) = "Admin" And Worksheets("DroitsUsers" ).Cells(x, 2) = "MdpAdmin" Then
For i= 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "Vierge" Then Sheets(i).Visible = True
Next
Application.ScreenUpdating = True
Exit sub
Marsh Posté le 05-06-2016 à 09:35:28
Bonjour,
Besoin d aide...
J ai bien copier les codes mais il y as un bug... snif.
Mon souhait serais de restreindre l accès des joueurs à 2 onglet "accueil " et "Joueurs x" afin de rentrée des pronostics pour l euro.
J ai bien copier les codes mais avec la 1er solution la page "joueurs 1 " s ouvre bien mais lorsque que le parieurs enregistre sont Paris le fichier redémarre sur sa page et il n y as plus qu'un seule onglet dans le classeur exel.
Avec les codes de la 2eme solution il y as une erreur il me dit que l utilisateurs ouest mot de passe ne correspond pas..
Est ce que vous pouvez me aider merci bcp...
Marsh Posté le 23-12-2016 à 21:33:39
Bonsoir,
Je déterre le sujet.
Je vous remercie beaucoup ça fonctionne parfaitement.
J'aimerais ajouter des améliorations.
Code :
|
1/ Comment désactiver le plantage de la feuille vierge sauf pour moi ?
2/ Est-il possible en ajoutant en cellule D1 par exemple une date et après cette date, la personne n'a plus les droits pour se connecter ?
3/ Comment désactiver VBA sans perdre la programmation ?
Joyeuses fêtes
Marsh Posté le 04-01-2017 à 09:41:59
Bonjour,
J'ai moi aussi essayé de récupérer les codes pour faire un peu le même travail mais je suis incapable de modifier ce genre de code sans que cela me retourne des messages d'erreur
J'ai une feuille que j'ai appelé mdp (pour mot de passe) avec en colonne A les nom des utilisateurs (User) en colonne B les mot de passe (Mdp) et en colonne C l'onglet que la personne a le droit de voir.
L'admin, dont le mdp est mdpadmin doit voir tous les onglets.
Dès l'ouverture du document => feuille blanche et demande du nom d'utilisateur et mdp (si pas de correspondance dans l'onglet mdp, un message qui dit que le fichier va se fermer.
Dans l'onglet, des dates en colonne A (dont celle du jour) et des horaires à saisir colonnes C, D, G
Je voudrais que la personne ne puisse saisir que sur la ligne correspondant à la date du jour
Merci pour votre aide
Marsh Posté le 04-01-2017 à 15:06:14
re-bonjour,
J'ai commencé donc je vous joins un lien à mon fichier dans lequel vous trouverez la macro:
https://mon-partage.fr/f/OtG5UjA4/
Pour ouvrir le fichier: User ADMIN et mot de passe ADMIN
Il me reste à rajouter qq part dans le code qu'on ne peut modifier que si la date correspond à la date du jour (sauf pour ADMIN qui peut tout faire)
Merci pour votre aide
Marjorie
Marsh Posté le 26-04-2017 à 10:23:57
Bonjour a tous
petit up pour ce sujet. Je voudrai également utilisé ce code, mais j'y arrive pas. Si quelqu'un pouvait me donner un petit coup de main. Les user, mdp et feuille autorisée sont sur l'onglet DroitsUser
https://mon-partage.fr/f/hmTBNQiP/
Merci a vous
Marsh Posté le 26-04-2017 à 23:31:51
ReplyMarsh Posté le 27-04-2017 à 15:29:38
Non en fait, simple erreur d'écriture sur mon..... onglet...
Le boulet. Désolé
Marsh Posté le 22-06-2017 à 10:54:53
SuppotDeSaTante a écrit : Ah oui suis con |
Bonjour,
tout d'abord merci à dje69r pour tes posts, tu m'as apporté une aide incroyable
chez moi, pour la partie ''admin'' ça ne fonctionnait pas, j'ai modifié le code ainsi pour que cela fonctionne:
ElseIf User = "admin" And MDP = "mdpadmin" Then
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "Intro" Then Sheets(i).Visible = True
Next
Application.ScreenUpdating = True
Exit Sub
en effet, de pointer sur Worksheets("DroitsUsers" ).Cells(x, 1), ça trouvait forcément le user et mdp
Marsh Posté le 23-06-2017 à 09:19:21
Hum, en relisant, c'est plus logique comme tu fais
Mais tu ne dois pas stocker le compte et mdp admin, ce qui n'est pas forcément un mal
Marsh Posté le 27-06-2017 à 14:14:42
Bonjour a tous et a toutes
J ai copie le code dans this work book
bien cree VIERGE DroitsUsers
mais je n ai que feuille vierge qui s affiche
je ne comprends pas
Code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'on affiche la feuille Vierge
Sheets("Vierge" ).Visible = True
'on planque toutes les autres feuilles sauf Vierge
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "Vierge" Then Sheets(x).Visible = xlSheetVeryHidden
Next
End Sub
Code :
Private Sub Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
'on defini un pointeur
Pointeur = 0
'on affiche la feuille Vierge
Sheets("Vierge" ).Visible = True
'on va dessus
Sheets("Vierge" ).Activate
'on planque toutes les autres
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "Vierge" Then Sheets(x).Visible = xlSheetVeryHidden
Next
'on saisit le user
User = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur" )
'on saisit le mot de passe
MDP = InputBox("Veuillez saisir votre mot de passe", "Mot de passe" )
'Derniere ligne du tableau de la feuille DroitsUsers pour boucler dessus
DerLigne = Sheets("DroitsUsers" ).Range("A65536" ).End(xlUp).Row
'on boucle pour trouver les occurences, x=2 car je pars du principe que la premiere ligne _
contient les entetes de colonne
For x = 2 To DerLigne
'si ce qu'il y a dans la colonne1 (Colonne A : user) = le user saisi _
ET ce qu'il y a dans la colonne2 (Colonne B : mot de passe)
If Worksheets("DroitsUsers" ).Cells(x, 1) = User And Worksheets("DroitsUsers" ).Cells(x, 2) = MDP Then
'on affiche la feuille définié en colonne3 (Colonne C : Onglet autorisé)
'on affiche la feuille correspondante
FeuilleVisible = Worksheets("DroitsUsers" ).Cells(x, 3)
Sheets(FeuilleVisible).Visible = True
'on va dessus
Sheets(FeuilleVisible).Activate
'on se met un pointeur pour voir si on trouve quelque chose, si on trouve rien on quittera
Pointeur = Pointeur + 1
End If
Next x
'Si le pointeur est 0 on ferme le fichier.
If Pointeur = 0 Then
MsgBox "Utilisateur ou mot de passe non valide" & vbCrLf & vbCrLf & "Le fichier va se fermer", vbCritical + vbOKOnly, "Sécurité"
ActiveWorkbook.Close SaveChanges:=False
End If
'on planque la feuille Vierge
Sheets("Vierge" ).Visible = 2
Application.ScreenUpdating = True
End Sub
Marsh Posté le 18-07-2017 à 19:37:18
Bonsoir à tous !
dje69r j'avais besoin d'une macro faisant ce genre de choses et la tienne fait très bien l'affaire, merci !
Maintenant j'aurais besoin d'aller un peu plus loin, je m'explique :
L'ensemble de mes utilisateurs recensés dans "DroitsUsers" auront accès à la même feuille du fichier (seul 2 admin ont accès à d'autres feuilles). J'aimerais qu'en fonction de leur nom d'utilisateur, seul les lignes les concernant s'affichent.
Si j'ai : toto, titi, tata, truc et much qui sont autorisés a accéder à la feuille, peut ont afficher seulement les lignes ou leur nom est cité afin que par exemple titi ne voit pas les lignes de much.
Pensez-vous cela faisable ? Merci
Marsh Posté le 18-07-2017 à 23:21:06
Hello
Faisable, ça l'est
Par contre pour le fiabiliser, c'est autre chose
Au pire on peut planquer les lignes mais ils peuvent les réafficher
Ou ça t'oblige à protéger la feuille pour qu'ils puissent pas afficher les lignes masquées, mais ils ne pourront donc pas modifier les infos de la feuille
Sinon passer par PowerPivot, mais ça va devenir une usine à gaz pour quelqu'un qui ne maitrise pas à minima les BDR même si les fonctions DAX sont assez similaires à celles d'excel
C'est quoi le but ?
Marsh Posté le 19-07-2017 à 06:42:39
Bonjour,
Merci de ta réponse, le but c'est que chaque personne n'ai en visibilité que les données le concernant cela afin d'éviter qu'il ne saisisse des informations dans des cellules non appropriés.
L'idée de "juste les masquer" et qu'il puisse les ré-afficher ne me pose pas de problème ces données n'étant pas confidentielles, c'est juste pour limiter les risques d'erreurs.
et concernant PowerPivot, les BDR et les fonction DAX, je n'ai pas la moindre idée de ce que cela est... :-)
Donc pour masquer automatiquement, comment peut on faire ?
Merci
Marsh Posté le 19-07-2017 à 15:42:47
PowerPivot est un complément excel qui permet de faire des requêtes (donc de filtrer des infos) sur des données du même fichier excel ou d'un autre (et d'autres types de données)
DAX c'est le nom du 'langage' des fonctions à utiliser dans PowerPivot, ça ressemble beaucoup à celle des formules d'Excel
BDR, base de données relationnelles, permet de mettre en relations des infos, de filtrer etc. Typiquement n'afficher que les infos de chaque user. Dans la suite Office, Access
En quelle colonne se situe les noms des users ?
Ton tableau commence à quelle ligne ? Et sur quelle ligne sont les entêtes de tes colonnes ?
Edit : en y réfléchissant, si y'a pas de confidentialité, un simple filtre te suffit ?
Marsh Posté le 20-07-2017 à 06:19:12
SuppotDeSaTante a écrit : PowerPivot est un complément excel qui permet de faire des requêtes (donc de filtrer des infos) sur des données du même fichier excel ou d'un autre (et d'autres types de données) |
bonjour,
Le nom des User se situe en colonne A, le tableau commence ligne 3 et les entêtes sont sur les lignes 1 & 2.
Oui dans le fond tu as raison cela fonctionne avec un simple filtre mais j'aurais aimé simplifier au maximum la saisie des utilisateurs :-)
Merci et bonne journée
Marsh Posté le 20-07-2017 à 09:46:01
Ce que je voulais dire, c'est plutot est-ce dérangeant d'automatiser le filtre automatique pour qu'il filtre sur le user qui se log ou tu préfères vraiment masquer les lignes (ce que fait un filtre auto en fait) ?
Marsh Posté le 20-07-2017 à 13:12:09
SuppotDeSaTante a écrit : Ce que je voulais dire, c'est plutot est-ce dérangeant d'automatiser le filtre automatique pour qu'il filtre sur le user qui se log ou tu préfères vraiment masquer les lignes (ce que fait un filtre auto en fait) ? |
Bonjour,
Un filtre automatique me semble plus pratique que le masquage, nan ? Mais j'ai peur que s'il faille utiliser Powerpivot ce soit impossible car je ne dispose pas du module et il est impossible d'installer quoi que ce soit sur les postes... :-(
Il faut que la manip reste en VBA.
Bonne journée
Marsh Posté le 14-05-2018 à 20:35:46
Bonjour je déterre un vieux sujet je sais mais qui correspond parfaitement à mon besoin actuel c-a-d ouvrir des onglets spécifiques selon le user identifié après avoir défini les droits de chacun en amont.
j'ai donc généreusement copié le code plus haut mais j'ai encore une erreur de compilation: 2 petites erreurs de syntaxe qui traînent et impossible de mettre le doigt dessus!! HELP
Private Sub Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
'on defini un pointeur
Pointeur = 0
'on affiche la feuille Vierge
Sheets("Vierge" ).Visible = True
'on va dessus
Sheets("Vierge" ).Activate
'on planque toutes les autres
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "Vierge" Then Sheets(x).Visible = xlSheetVeryHidden
Next
'on saisit le user
User = InputBox("Veuillez saisir votre nom d'utilisateur: ", "Utilisateur" )
'on saisit le mot de passe
MDP= InputBox("Veuillez saisir votre mot de passe: ", "Mot de passe" )
'Derniere ligne du tableau de la feuille DroitsUsers pour boucler dessus
DerLigne= Sheets("DroitsUsers" ). Range("A65536" ). End(xlUp). Row
'on boucle pour trouver les occurences, x=2 car je pars du principe que la premiere ligne _
contient les entetes de colonne
For x = 2 To DerLigne
'si ce qu'il y a dans la colonne1 (Colonne A : user) = le user saisi _
ET ce qu'il y a dans la colonne2 (Colonne B : mot de passe)
If Worksheets("DroitsUsers" ).Cells(x, 1) = User And Worksheets("DroitsUsers" ).Cells(x, 2) = MDP Then
'on affiche la feuille définie en colonne3 (Colonne C : Feuille autorisée)
'on affiche la feuille correspondante
FeuilleVisible = Worksheets("DroitsUsers" ).Cells(x, 3)
Sheets(FeuilleVisible).Visible = True
'on va dessus
Sheets(FeuilleVisible).Activate
'on se met un pointeur pour voir si on trouve quelque chose, si on ne trouve rien on quitte
Pointeur = Pointeur + 1
ElseIf Worksheets("DroitsUsers" ).Cells(x, 1) = "Admin" And Worksheets("DroitsUsers" ).Cells(x, 2) = "LeMDP" Then
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "Vierge" Then Sheets(i).Visible = True
Next
Application.ScreenUpdating = True
Exit Sub
Marsh Posté le 15-05-2018 à 00:10:24
C'est cool
Mais si tu donnes pas le message d'erreur ça va être compliqué hein
Marsh Posté le 15-05-2018 à 09:15:47
Oups! désolé merci dje69r. ça me fait "Erreur de compilation: Erreur de syntaxe". j'ai beau louché sur le code depuis 2 jours tenté des modifs rien à a faire. pour info suis sous Excel 2010
Marsh Posté le 15-05-2018 à 09:31:56
Et tu as quoi de surligné dans le code ?
Les deux lignes que tu as mises en rouge ?
Marsh Posté le 19-10-2010 à 13:34:31
Bonjour à tous,
je viens de monter un fichier excel avec plusieurs onglets et je voudrais pour chaque personne entrant dans ce fichier qu'elle soit automatiquement redirigée vers l'onglet qui la concerne tout en ne voyant pas les autres onglets. Sachant que certaines personnes peuvent avoir accès à plusieurs onglets à la fois.
J'ai trouvé un moyen de "décacher" un onglet grâce à un mot de passe en actionnant un bouton sur l'onglet sommaire, mais à part faire un bouton par personne (or j'ai une centaine de personnes différentes) et donc une macro par personne, je ne vois pas comment je pourrais faire plus simplement.
peut-être avec une table de corrsepondance qui reprendrait les utilisateurs, leur mot de passe et les onglets auquels ils ont accès, mais étant débutant en VBA je ne sais pas comment la mettre en place.
Merci d'avance +++ pour votre aide !!
Message édité par Emetom le 19-10-2010 à 14:21:40