IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Détection automatique de l'utilisateur connecté


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 30
    Par défaut Détection automatique de l'utilisateur connecté
    Bonjour,

    Mon problème est le suivant: je développe un tableau de bord Ressources Humaines destiné aux chefs d'atelier. Le but de ce dernier est de fournir aux chefs d'atelier les indicateurs (les visites médicales, les entretiens...) sur leur périmètre.

    Par ailleurs, les chefs d'atelier vont juste consulter les indicateurs. y a aussi un expert qui se charge de modifier, supprimer et mettre à jour les indicateurs.

    A l'ouverture de cette application, je veux que celle ci détecte automatiquement l'utilisateur connecté, est ce un chef d'atelier ou bien un expert ? pour définir les droits de chacun d'eux (pour les chefs d'atelier: consultation et pour les experts: consultation, modification et suppression d'indicateurs).

    En gros, cette application doit détecter l'adresse IPN de l'utilisateur connecté sans passer par le biais du mode passe.

    Pour le développement de l'application, j'utilise VBA sous excel.


    j'espère que vous avez bien compris ce que je veux dire.

    Si vous avez une solution à ce problème. N'hésitez pas

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeUser = Environ("USERNAME")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 30
    Par défaut
    Merci pour la réponse.

    Mais avant de coder, il faut que je crée un tableau avec différents champs:
    Exemple:


    IPN Profil
    a45401 Expert
    a90783 Chef d'atelier



    c'est ça, non?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si IPN, a45401, a90783 sont des noms d'utilisateurs, oui, c'est ça
    Tu peux placer la liste de ces noms dans un tableau à deux dimensions.
    La première, LeTableau(0, n) = L'User
    La seconde, LeTableau(1, n) = La fonction
    Pour tester, je t'ai fait ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub RechercheDeLaFonction()
    Dim TabloDyousers, TabloDesFontions, Result, LeTableau()
        LeUser = "GC"
    ' *** Juste pour me faciliter le remplissage du tableau à deux dimensions
        TabloDyousers = Array("IPN", "a45401", "a90783", "GC", "PDG")
        TabloDesFonctions = Array("Profil", "Expert", "Chef d'atelier", "Grand chef", "Big boss")
        ReDim LeTableau(0 To 1, i To UBound(TabloDyousers))
        For i = 0 To UBound(TabloDyousers) 'Remplit le tableau à deux dimensions
            LeTableau(0, i) = TabloDyousers(i)
            LeTableau(1, i) = TabloDesFonctions(i)
        Next
    '*********************************************************
    
    'Quelque soit la méthode de remplissage de ton tableau,
    'pour connaître la fonction, il te suffit de faire ça
    
        For j = 0 To i - 1
            If LeUser = LeTableau(0, j) Then _
                MsgBox "C'est un " & LeTableau(1, j)
        Next
                
    End Sub
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 30
    Par défaut
    Merci pour la réponse.

    J'ai vu avec mon patron hier, mais en fait il veut autre chose.

    J'explique le but de l'application:

    les utilisateurs de mon application sont: les chefs d'atelier, Expert, Utilisateurs privilégiés (GRH), Pilote.

    Pour les chefs d'atelier: lors de la connexion du chef d'atelier à l'application, cette dernière va vérifier son IPN (la vérification de l'ipn se fait automatiquement, sans passer par le biais du mot de passe), si celle çi est bonne, l'application affichera alors au chef d'atelier les indicateurs de son périmètre. si c'est pas le cas, l'application affichera un message du type "accès non autorisé".

    Pour le pilote: lors de la connexion du pilote, c'est pareil, l'application vérifiera son IPN, si celle çi est bonne, l'application affichera dans ce cas la liste des ateliers existants, si le pilote sélectionne un atelier, l'application affichera l'indicateur correspondant à cet atelier.

    Du coup, le pilote joue deux rôles: l'affichage des listes des ateliers et l'affichage des indicateurs de l'atelier sélectionné. Par contre pour un chef d'atelier, l'application affichera juste l'indicateur correspondant à son périmètre (son atelier).

    Pour l'utilisateur privilégié: lors de l'ouverture de l'application, pareil, l'application vérifiera son IPN, si celle çi est bonne, l'application affichera dans ce cas la liste des départements (Maintenance, Emboutissage, Montage, Logistique, Tôlerie, Peinture, Qualité, SRH), si l'utilisateur privilégié sélectionne un département, l'application affichera la liste des ateliers existants dans ce département et ainsi de suite jusqu'à l'affichage de l'indicateur.

    Donc, l'utilisateur priviligié joue à la fois le rôle du pilote et du chef d'atelier, avec un pouvoir supplémentaire, l'affichage des départements.

    Pour l'Expert: lors de l'ouverture de l'application, pareil, l'application vérifiera son IPN, si celle çi est bonne, cette dernière affichera un formulaire avec deux boutons ( Afficher et Maintenir). J'explique:

    Si l'expert clique sur le bouton Afficher, dans ce cas il va procéder comme l'utilsateur priviligié, l'application va lui afficher un formulaire avec la liste des départements et ainsi de suite jusqu'à l'affichage de l'indicateur.

    Par contre s'il clique sur le bouton Maintenir, dans ce cas l'application affichera toutes les pages de données, pour qu'il puisse modifier, supprimer et mettre à jour.

    J'espère que j'étais bien clair dans mes explications.

    Et j'aimerai bien que vous m'aidiez. Merci

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as un superbe cahier des charges.
    Dans un cas semblable je n'hésiterais pas, j'utiliserais un userform.
    Tu crées un tableau des Users (IPN)
    Tu crées un tableau des IPN.
    Ensuite, selon l'IPN, tu crées sur l'userform des listbox + une textbox que tu renseignes selon :

    Expert -> Affichage de deux boutons
    Bouton "Afficher" :
    ListBox1 -> liste des départements
    ListBox2 -> liste des ateliers existants
    ListBox 3 -> liste des indicateurs de l'atelier sélectionné
    Une sélection -> Affiche dans la textbox l'indicateur correspondant
    Bouton "Maintenir" -> Affichage des feuilles de calculs

    Utilisateur privilégié -> ListBox1 -> liste des départements
    ListBox2 -> liste des ateliers existants
    ListBox 3 -> liste des indicateurs de l'atelier sélectionné
    Une sélection -> Affiche dans une textbox l'indicateur correspondant

    Pilote -> listbox2 -> Liste des ateliers existants
    Dans listbox3 -> liste des indicateurs de l'atelier sélectionné.
    Une sélection -> Affiche dans la textbox l'indicateur correspondant
    Listbox1 -> masqué.

    Chef de l'atelier -> listbox3 est renseignée ses indicateurs de son périmètre. Une sélection affiche dans une textbox l'indicateur correspondant à cet atelier.
    Listbox1 -> masqué.
    Listbox2 -> masqué.

    Reste plus qu'à faire.
    Tu as compris que tu vas jouer sur l'affichage de tel ou tel contrôle selon que lIPN identifié aura accès ou non à une liste. Mais ainsi, toutes tes listes seront renseignées de la même manière, seul l'affichage à l'écran sera géré selon l'utilisateur.
    Une routine unique pour remplir chaque liste
    Un affichage conditionnel de chaque liste.
    Code : Listboxn.visible = False 'selon le cas
    Assez plaisant à réalisé
    Régale-toi
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/07/2010, 14h56
  2. Réponses: 1
    Dernier message: 23/09/2008, 11h37
  3. Nbrs d'utilisateurs connectés ?
    Par ada_b dans le forum Administration
    Réponses: 2
    Dernier message: 25/10/2004, 09h06
  4. Récupérer utilisateurs connectés
    Par alex4 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 14/04/2004, 14h21
  5. nombre d'utilisateur connecté a ma base ACCESS
    Par shkinmi dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/11/2003, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo