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 :

Ouverture de feuille auto par username


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Ouverture de feuille auto par username
    Bonjour à tous,

    C'est mon premier message sur ce forum, j'espere donc que vous pourrez m'aider, car j'avoue ne pas encore connaitre VBA.. mais j'aime le coté pratique de ce langage pour améliorer Excel.
    Voici ma question : Comment faire pour que lorsqu'un utilisateur Windows défini ouvre un fichier Excel, celui ci tombe sur une feuille le concernant ?

    En gros, j'ai créé 15 feuilles nommé "Dupont", "Martin".... et je veux que quand ces personnes ouvrent mon document Excel, elle tombent directement sur la page (un formulaire qu'il doivent remplir)

    Merci par avance de votre aide !
    A bientot

    PS : J'ai entendu parler de environ.username("username").... si ca peut aider ?

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    dans la mesure ou le username est corerctement défini dans l'envirronement, le code suivant à installer dans Thisworkbook de ton projet peut fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_Open()
    For Each sh In Sheets
        If UCase(sh.Name) = UCase(Application.UserName) Then
            sh.Select
            Exit For
        End If
    Next sh
    End Sub

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Merci !
    Je vais jouer les gros nuls, mais ou puis je définir la feuille à ouvrir pour chaque utilisateur ?

    Concrètement, dans le code, j'ai l'impression que tout est automatique, alors que je veux que l'utilisateur NT "mdupont" ouvre la page "Martin DUPONT"

    Merci encore de votre aide

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Oops,

    ça change alors un peu.
    J'utilise UCASE pour convertir le user NT en majuscule, comme cela pas besoin de se tracasser de la casse, mais le test est bien sûr à faire en majuscule alors.

    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
    23
     
    Private Sub Workbook_Open()
    dim Targetsh as string
     
    Select case UCase(sh.Name)
             case "MDUPONT"
                Targetsh = "Martin DUPONT"
             case  "BGATES"
                Targetsh = "Bill Gates"
             '
             ' ici tous les autres cas
             ' 
     
             Case else
                Targetsh = "niks"
    end select
    For Each sh In Sheets
        If sh.Name = TargetSh Then
            sh.Select
            Exit For
        End If
    Next sh
    End Sub
    Mais ce n'est pas idéal car tu dois changer ton code à chaque ajout, suppression de user.

    Il est préférable de réserver une feuille du fichier avec en colonne A le NTUSER et en B le nom de la feuille lié, mais c'est une autre programmation et je n'ai guère le temps pour cela.

Discussions similaires

  1. [XL-2007] Comment restreindre l'ouverture de mon classeur par username
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/12/2012, 10h55
  2. [VB6]Détecter ouverture du Port serie par autre application
    Par jbbelz dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 03/04/2006, 15h21
  3. [VBA-E] Lancement de la macro avant l'ouverture des feuilles
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h07
  4. Ouverture de fichiers excel par ordre alphabetique
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/12/2005, 16h54
  5. [VB.NET] ouverture d'une DataGrid par bouton
    Par breizhou dans le forum Windows Forms
    Réponses: 9
    Dernier message: 18/04/2005, 18h08

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