Créer des sessions sous excel avec MDP

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 13 févr. 2013 à 17:20
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 30 juil. 2013 à 11:29
Bonjour,

Je souhaiterai créer, comme le titre l'indique des sessions sous Excel avec MDP.

Je m'explique.
Un document Excel peut être ouvert par de nombreuses personnes mais beaucoup de ces personnes ne sachant pas utiliser Excel, il arrive que le fichier soit complétement désordonné.
D'où mon envie que lorsqu'une personne se connecte sur le fichier, elle n'est accès qu'à ses données. Et n'ayant rien trouver après mes recherches, je me demande si cela est possible ?

Merci d'avance


A voir également:

18 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 14/02/2013 à 14:06
Bonjour,bonjour Michel,
Une version "perso" ? :-))
Code passe
Mode d'emploi inclus.
En ouverture impossible de le visualiser, entrez les données Admin, sur le menu validez Quitter.
La feuille Code peu être déverrouillée.
A+


Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
1
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
14 févr. 2013 à 14:30
Bonjour Lermite,

Merci pour ce document qui a plus l'air de se rapprocher d'une session. Mais il m'a également l'air plus technique. Je vais me pencher dessus et je reviendrai surement vers vous dans les prochaines heures où les prochains jours.

Merci
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 févr. 2013 à 18:38
Bonjour,

Comme je le pensais me revoici...
Un problème m'empeche de modifier le nom de l'onglet acceuil que je veux renommer accueil. J'ai eu beau tout modifier dans le code, une ligne me bloque (même en ayant retiré le stop) voici la ligne réfractaire :

Sub ChangerUtilisateur()
Dim F As Integer
'Stop
'CodeAdmin = "9999"
    CodeAdmin = Sheets("code").[B4] ' "9999"

    Application.ScreenUpdating = False
    For F = 1 To Worksheets.Count
        If Sheets(F).Name <> "accueil" Then

            Sheets(F).Visible = xlSheetVeryHidden
            Sheets(F).Protect CodeAdmin
        Else
            Sheets(F).Protect CodeAdmin
        End If
    Next F
    With Sheets("accueil")
    .CommandButton1.Caption = "Changer d'utilisateur"
    .CommandButton1.Visible = False
    .GererCode.Visible = False
    .Protect CodeAdmin
    End With
    Niveau = 0
    Application.ScreenUpdating = True

End Sub


Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 févr. 2013 à 11:04
Bonjour,

Excel ne fait pas le café, mais...

Ci joint un exemple d'ouverture de feuille suivant identifiant et mot de passe (2 niveaux + admin).
Auteur: @+ Thierry sur Excel-downloads
https://www.cjoint.com/?3BoldMAbtOr
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
14 févr. 2013 à 12:00
Merci beaucoup Michel

Je vais regarder cela avec beaucoup d'attention.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 févr. 2013 à 21:03
Huum, je n'avais pas remarqué cette erreur de frappe et comme je n'écrit jamais les noms des feuilles, par habitude et pour éviter les mauvaises retranscriptions je fais des copier/coller.
Tu dois tout déverrouillé et remplacer Acceuil par Accueil PARTOUT DANS LE CODE.
et pas oublier de sauver. Si t'en sort pas je remettrais le code modifier.
A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
19 févr. 2013 à 10:15
Bonjour Lermite,
Finalement, il me semble que cela fonctionne (en mettant en commentaire le stop)
Je continue mon avancé sur ton super travail.

Merci
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
Modifié par Co_nexion le 19/02/2013 à 15:10
Re,

De temps à autres, les boutons sautent de la page accueil. Ils appareissent en mode Création mais sinon ils ne sont plus... Aurais-tu une explication et une solution ?

Pour être plus précis, c'est après avoir changer d'utilisateur que les boutons disparaissent. Ils me semble l'avoir compris. En fait, ils disparaissent lorsque que ce n'est plus l'admin ;)

Mon problème est que cette ligne de code se bloque, saurais-tu d'où vient l'astuce pour réparer ?
Pour info j'ai modifier le nom des pages, et il me semble que cela vient de là.

 If .Cells(LigUtilisateur, Col) > 1 Then
                Sheets(NomFeuil).Unprotect CodeAdmin
            End If
            EtatSheet(Sheets(NomFeuil).Index) = .Cells(LigUtilisateur, Col)
            Col = Col + 1
        Loop Until .Cells(LigUtilisateur, Col) = ""
    End With
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
19 févr. 2013 à 15:23
En utilisation "opérationnelle" je ne suis pas parvenu a reproduire ce que tu dis.
C'est probablement arriver au cour de travail dans le code !
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
19 févr. 2013 à 15:46
En faitpour en arriver la. Je me suis d'abord connecté sous admin. Puis j'ai modifié le nom de l'onglet ainsi que sur la page code. Puis j'ai ajouté une nouvelle personne et je me suis connecté avec son profil. Et là, c'est le "petit drame" (étant donné que les pages s'affichent bien lorsqu'on clique sur fin)
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
19 févr. 2013 à 16:43
Je pense que le problème vient du fait que j'ai rajouté 2 feuilles.
Quand on crée une nouvelle personne, deux 0 s'inscrivent en colonne M et N, j'ai donc voulu m'en servir pour ajouter 2 nouvelles feuilles.
Est-ce une erreur ?
0

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

Posez votre question
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
Modifié par Co_nexion le 19/02/2013 à 17:17
Re Lermite,

Je confirme ma dernière intuition, cela vient du fait que j'ai ajouté deux onglets supplémentaire, cela m'amène à une question qui résoudrait ce problème : aurais-tu ce fameux code pour ajouter un onglet ? Ce serait avec grand plaisir que je le testerai :)
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
19 févr. 2013 à 17:35
Non, c'est la seule chose qui n'est pas encore opérationnelle en automatique mais cela ne veux pas dire qu'il n'y a pas moyen.
Déverrouiller la feuille Code
Continuer sur la ligne 3, par exemple mettre le nom de la nouvelle feuille en L3, une deuxième en M3 etc..
Mettre obligatoirement 2 sur la ligne de l'Admin.
Pour les autre "users" mettre 0,1 ou 2 sur leur ligne respective. suivant l'accès souhaiter, mais là tu peu revenir en automatique pour adapter les accès aux feuilles.

Note: tu peu modifier les noms des feuilles à condition d'adapter les noms sur la ligne 3, idem pour supprimer une feuille, supprimer carrément la colonne de cette feuille dans la feuille Code bien entendu.

Tu dis...
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
19 févr. 2013 à 17:59
Effectivement... Impeccable..
Je l'avais fait dans l'autre sens, d'abord la page puis dans la feuille code : Erreur !

Merci. Je valide totalement ce superbe travail !
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
4 mars 2013 à 16:23
Bonjour,

Suite à la mise en place d'un fichier avec ton système de session, un problème se pose... (Je ne crée pas de nouveau sujet étant donné que cela fait suite à cette demande mais peut être préférerez-vous ?)

Lorsqu'un utilisateur se connecte, il a la possibilité via des userform de remplir un onglet qui lui est dédié (pour faire simple, j'ai fait : onglet = nom utilisateur).
Mon problème est que dans la macro on me demande le nom de la feuille et comme celui-ci varie en fonction de la session, je bloque pour ne pas mettre le nom de la feuille en dur mais plutôt en variable.

Merci par avance de votre retour
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
4 mars 2013 à 18:24
Re,
Non, vaux mieux rester sur ce poste.
Si tu met le nom de la feuille en variable je suppose que tu emploi quelque chose comme...
Dim Wks as WorkSheet
     Set Wks=sheets(NomUtilisateur)

Si c'est le cas, tu peu employé le nom de Wks --> Wks.name ou sheets(NomUtilisateur)
Et il doit y avoir une feuille à ce nom répertoriée sur la feuille Code.
Sans renseignement complémentaire je peu pas en dire plus.
A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
4 mars 2013 à 18:52
C'est parfaitement cela ! Merci

Avant ta réponse j'ai essayé avec une parade qui consistait à mettre le NomUtilisateur (désigné par la variable As String) dans une cellule ; afin de reprendre les références de cette dernière dans le code. Mais aussi simple soit-il je n'ai pas réussi, pourrais-tu m'éclairer ?

Merci
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
4 mars 2013 à 20:17
Sans un exemple c'est pratiquement pas possible.
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
5 mars 2013 à 11:36
Lorsque tu te connecte en session, un userform disant bonjour "NomUtilisateur" apparait, j'aurai souhaité avoir ce nom utilisateur dans une cellule (en b2 de la feuille Code par exemple). Est-ce plus clair ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 mars 2013 à 18:44
Re,
un userform disant bonjour "NomUtilisateur" apparait, j'aurai souhaité avoir ce nom utilisateur dans une cellule (en b2 de la feuille Code par exemple).
Tu à la variable Public NomUtilisateur que tu peu employer partout dans le code. Libre à toi de le mettre dans une cellule mais je n'en vois pas l'utilité.
A+

0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juin 2013 à 15:48
Bonjour à tous, bonjour lermite,

Tout d'abord ton fichier MDP est d'une grande qualité et m'est d'une grande utilité

J'essaie aujourd'hui d'alimenter une combox en fonction du nom de la personne qui se connecte.
Un peu de ce style :

If (nom utilisateur) = Nom Prenom then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 2"
End if

If (nom utilisateur) = Nom2 Prenom2 Then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 3"
    ComboBox1.AddItem "Entreprise 4"
End if

Etc.


Aurais-tu une idée pour traduire cela explicitement dans VBA ?

Merci
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 juin 2013 à 15:56
Bonjour,
Quel est le but de cette manip ?
Tu veux avoir un historique des connections ?
Sinon, explique plus clairement ce que tu veux faire et pourquoi.
A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juin 2013 à 16:30
Re,

Le but de cette manip' n'est pas d'avoir un historique mais de pouvoir personnaliser chaque la combobox1 en fonction de la personne qui se connecte.
Est plus claire ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 juin 2013 à 16:36
Non, je comprend absolument pas, oublie pas que je n'ai pas ton appli et que je n'ai pas non plus de boule de cristal.
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juin 2013 à 17:19
En effet, je vais tenter d'être le plus précis possible.

J'ai crée 10 sessions, chacune faisant référence à un onglet et chaque onglet reprend le nom de la personne qui se connecte.

Du coup lorsqu'une personne se connecte elle peut ecrire via un userform (qu'elle lance depuis la page d'accueil) des données relatives à ses rendez-vous. Personne à part elle (la personne connectée) ne peut écrire sur son onglet.

Le userform qui se lance est le même pour chaque personne qui se connecte. Ainsi que les différents éléments qui y figurent (combobox notamment).

J'aimerai en quelque sorte que ce combobox soit relié à la session qui s'ouvre. Peut être qu'en reprenant l'exemple cité plus haut cela sera plus claire dorénavant

If (nom utilisateur) = Nom Prenom then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 2"
End if

If (nom utilisateur) = Nom2 Prenom2 Then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 3"
    ComboBox1.AddItem "Entreprise 4"
End if

Etc.


Je peux peut être encore faire mieux mais j'espère que je t'aurai transmis l'essentiel pour que tu comprennes mon problème :)

Merci d'avance
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 juin 2013 à 19:59
Entreprise 1, Entreprise 2, etc ... ce sont les noms des onglets qui sont accessible à l'utilisateur ?
Sinon, c'est quoi ?
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
13 juin 2013 à 13:53
Bonjour Lermite,

L'utilisateur lorsqu'il se connecte n'a qu'un seul onglet : celui qui porte son nom.
Exemple : je suis Laurent Blanc, je me connecte sous le nom laurent blanc et le nom de mon onglet actif est laurent blanc.

Le nom de l'entreprise figure dans la colonne "d" de sa feuille.

Est ce plus clair ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 juin 2013 à 17:21
Ca commence à viendre ..
Suivant tes explications,
Essaye ça..
Dim Lig As Integer
    ComboBox1.Clear
    Lig = 2 'première ligne renseignée
    With Sheets(NomUtilisateur)
        While Cells(Lig, 4) <> ""
            ComboBox1.AddItem .Cells(Lig, 4)
            Lig = Lig + 1
        Wend

? sais pas si j'ai bien compris..
A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
Modifié par Co_nexion le 14/06/2013 à 10:37
Je pense que tu as bien compris (même si pour le moment je n'arrive pas à faire fonctionner ce code)
Seulement, j'aimerai mieux ne pas faire appel à ce qui est déjà dans la feuille car des fois celle-ci n'est pas rempli par l'utilisateur. Connaissant moi-même les entreprises qui y figureront je peux leur pré-mâcher le travail. C'est pour cela que j'aimerai définir la combo depuis VBA. Je reprends mon exemple précédent, peut être celui-ci sera dorénavant plus parlant pour toi :

If (nom utilisateur) = Nom Prenom then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 2"
End if

If (nom utilisateur) = Nom2 Prenom2 Then

    ComboBox1.AddItem "Entreprise 1"
    ComboBox1.AddItem "Entreprise 3"
    ComboBox1.AddItem "Entreprise 4"
End if

Etc.


Merci pour tout le temps passé !
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 juin 2013 à 21:35
Tu commence sérieusement à devenir chi... t :-)
Une solution serait de mettre ces données dans la feuille des codes, en VBA tu pourais les récupérer sans devoir la rendre visible,
Voir exemple
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
17 juin 2013 à 11:16
Bonjour Lermitte, Oui très ch...t, je m'en rends compte moi même ^^

En attendant de trouver mieux, j'ai fait une petite parade qui consiste à afficher (de manière non visible) sur le userform dans un etextbox le nom de l'onglet. En fonction de cela la combobox se voit modifier et attribuer les bons noms d'entreprises !

Merci pour ton coup de main en tout cas, qui m'a mis sur la piste !!!!

Bonne journée (et à bientôt :)
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
Modifié par Co_nexion le 17/06/2013 à 16:46
Lermite,

Me revoici, et cette fois avec un pb de taille XXL.
J'ai voulu mettre en partage le fichier pour que pls personnes puisse l'utiliser en même temps. Malheureusement toutes les maccros se bloquent... As-tu déjà rencontrer ce problème ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 juin 2013 à 20:02
Avec ce système =>impossible de travailler en mode partager
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 juin 2013 à 14:46
Merci pour la réponse
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
24 juil. 2013 à 18:38
Bonjour le forum, bonjour lermite,

Petite question : est-ce qu'avec la sauvegarde automatique, on peut quand même avoir le "ctrl z" ?

Peux-tu également m'indiquer comment enlever la sauvegarde automatique ?

Par avance merci,
Cdt,
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 juil. 2013 à 12:16
Re,
Si avec Ctrl+Z tu veux annuler la/les actions faite par une macro.. faut juste réfléchir un peu.

Dans le module "ThisWorkBook" supprimer ActiveWorkbook.Save
A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
30 juil. 2013 à 11:29
Bonjour Lermite222,

Quand je parle de pouvoir faire ctrl+Z ce n'est pas suite à une action initiée par une macro. Mais simplement lorsque j'écris tout simplement des données dans le tableur ou lorsque je les modifie.
Je comprends bien qu'on ne puisse pas faire une ctrl+Z après une macro mais avec une simple modif dans le tableur cela me semble bizarre que ça ne marche pas.
0