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 :

Afficher uniquement la feuille portant le nom du username [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut Afficher uniquement la feuille portant le nom du username
    Bonsoir le forum
    J'ai un classeur que je souhaite mettre en mode partagé. Il sera utilisé par 10 personnes.
    Je sais aussi qu'une macro peut fonctionner dans un classeur partagé mais avant il faut d'abord faire les macros avant d'activer le mode "classeur partagé".
    Maintenant je souhaite réaliser une macro qui affiche uniquement la feuille dont le nom correspond au username..
    J'ai essayé le code suivant :
    [code]Private sub workbook_open ()
    dim sh as worksheet
    for each sh in worksheets
    if sh.name<>environ("username") then
    sh.visible =xlveryhidden
    else
    sh.visible = true
    end if
    next sh
    end sub[\code]
    Le message d'erreur est le suivant:" la methode visible de l'objet worksheet a échoué".
    Merci de m'aider.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    IL y a peut être un problème de majuscules/minuscules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub auto_open()
      On Error Resume Next
      For Each f In ActiveWorkbook.Sheets
         f.Visible = IIf(UCase(Environ("username")) = UCase(f.Name), True, xlVeryHidden)
      Next f
      If Err Then MsgBox "il n'y a aucune feuille!" & Environ("username")
    End Sub
    Autre façon de procéder (la 1ere feuille est une feuille d'Accueil) consiste à protéger les feuilles à la sauvegarde du classeur pour éviter que l'opérateur appuie sur la touche Maj pour empêcher la macro auto_open ou workbook_open d'être exécutée et ainsi de consulter la feuille d'un autre utilisateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Workbook_Open()
      Sheets(Environ("username")).Visible = True
    End Sub
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      For s = 2 To Sheets.Count ' on masque les feuilles
         Sheets(s).Visible = xlVeryHidden
      Next s
    End Sub
    Boisgontier

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Personnellement j'opterai pour un code plus près de l'original avec un page d'accueil! Car si on affiche le UserName il n'y a rien qui nous dit que la feuille existe bien pour tout les utilisateurs logués!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each sh in worksheets
    sh.visible =sh.name=environ("username") or sh.name= "Accueuil"
    next sh

  4. #4
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Bonsoir a tous
    Merci pour vos contributions respectives.
    Jacques: tes macros fonctionnent très bien et j'apprécie.
    Dysorthographie: j'ai pris en compte votre proposition. Vous avez bien vu.
    Suis satisfait..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Afficher sur la feuille le nom de l'onglet.
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/08/2012, 15h45
  2. Réponses: 3
    Dernier message: 20/06/2008, 11h57
  3. Afficher/cacher une feuille selon le nom
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2008, 16h28
  4. Réponses: 4
    Dernier message: 27/04/2007, 15h02
  5. Réponses: 7
    Dernier message: 02/03/2006, 13h04

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