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 :

partage de données: Masquer des cellules en fonction de l'utilisateur, macro?


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Analyse système
    Inscrit en
    Septembre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 33
    Par défaut partage de données: Masquer des cellules en fonction de l'utilisateur, macro?
    Bonjour,

    J'ai une problématique à résoudre et je souhaite votre avis.
    J' utilise Excel 2007 en version English sur OS XP SP3.

    J' ai un seul reporting pour 3 équipes différentes et je veux que chaque personne puissent le compléter sans voir les données des autres équipes.
    Est-il possible de masquer certaines cellules en fonction de l'utilisateur?
    J'ai trouvé comment protéger ces cellules en écriture mais le contenu reste toujours visible et rien de très clair en ce qui concerne le masquage.

    Savez-vous si je dois utiliser une macro?

    Sinon, je pensais tout simplement faire un fichier modèle par équipe avec la même structure de reporting et ensuite utiliser une macro qui prendrait juste les valeurs non nulles de chaque classeur et irait les coller au même endroit dans mon reporting final (qui contient toutes les formules, et qui renseigne plusieurs graphiques dans d'autres onglets...)

    Mais je ne suis pas trop forte en VB script donc si vous avez un petit module modèle à me donner qui fait ça car j' ai essayé plusieurs trucs aujourd'hui et je perds beaucoup de temps.

    Je vous remercie pour vos propositions et aide.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Il n'est pas possible de masquer une seule cellule, tu ne peux masquer que des lignes ou des colonnes entières.
    Une solution est d'utiliser un format personnalisé --> ;;; (3 points-virgules), ce qui aura pour effet de rendre le contenu de la cellule invisible, et ensuite de protéger cette cellule.

  3. #3
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Pour contourner la problématique d'une seule cellule à masquer et dans un souci de fiablité et/ou ergonomie, je te propose de créer 3 feuilles: Equipe1/Equipe2/Equipe3 et une feuille Accueil (qui sera toujours visible)

    Grace à ça, on va tester le nom d'utilisateur du PC qui ouvre le fichier en fonction on affice la bonne feuille ou rien(donc les codes proposés sont à copier dans le module ThisWorkbook).
    L'avantage, si l'utilisateur n'a pas activé les macros il reste sur la page d'accueil (sur laquelle tu peux indiquer comment activer les macros) l'autre c'est que l'utilisateur ne verra même pas qu'il y a des feuilles masquées.
    Pour le voir il faut aller dans VBA donc un bon mot de passe et t'es plus ou moins OK.

    Voici les codes, il y a bien entendu d'autres possibilités:

    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
    Private Sub Workbook_Open() 'Procédure automatique à l'ouverture du fichier
    Dim Ws As Worksheet
    Dim LeUser As String
     
    For Each Ws In ActiveWorkbook.Sheets 'Boucle sur toutes les feuilles du fichier
        If Ws.Name <> "Accueil" Then Ws.Visible = xlSheetVeryHidden 'Si pas accueil "super" masqué
    Next Ws
     
    LeUser = UCase(Environ("username")) 'Récupère le nom d'utilisateur en majuscule
    If LeUser = "JOHN DOE" Then 'Teste le nom d'utilisateur, en fonction du nombre tu peux passer par un tableau
        Sheets("Equipe1").Visible = xlSheetVisible 'Affiche la feuille si le nom correspond
    ElseIf LeUser = "CALIMERO" Then
        Sheets("Equipe2").Visible = xlSheetVisible
    ElseIf LeUser = "BATMAN" Then
        Sheets("Equipe3").Visible = xlSheetVisible
    Else
        MsgBox "Vous n'êtes pas autorisé à accéder à ce fichier", vbCritical, "Moi" 'Petite msgbox pour le fun
    End If
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Procédure automatique à la fermeture du fichier
    'Cette partie garanti qu'à la prochaine ouverture, si les macros ne sont pas activées, seule la feuille Accueil est visible
    Dim Ws As Worksheet
     
    For Each Ws In ActiveWorkbook.Sheets 'Boucle sur les feuilles
        If Ws.Name <> "Accueil" Then Ws.Visible = xlSheetVeryHidden 'Si pas accueil "super" masqué
    Next Ws
     
    Save = True 'Sauvegarde du fichier
     
    End Sub

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/01/2015, 21h31
  2. [XL-2010] Masquer des cellules en fonction de la valeur d'une autre cellule
    Par Azulnoth dans le forum Excel
    Réponses: 7
    Dernier message: 17/07/2014, 17h45
  3. [XL-2007] Macro pour colorier des cellules en fonction de données
    Par stephane12 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2014, 07h51
  4. Masquer des cellules si la cellule au-dessus à la même valeur
    Par Bubut dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 12/06/2007, 13h45
  5. [VBA-E] afficher des données dans des cellules
    Par Bad Bond dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/04/2006, 14h04

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