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 :

Cacher les données d'une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 24
    Par défaut Cacher les données d'une feuille
    Bonsoir,

    J'aimerais savoir il y a-t-il un moyen de cacher les données d'une feuille .
    En fait, j'ai un fichier qui contient plusieurs feuilles et je voudrais cacher les données d'une feuille par mot de passe avant de le partager sur le réseau.
    Je souhaiterais dés l'ouverture de cette feuille, une demande de mot de passe sera obligatoire pour que uniquement les utilisateurs concernés puissent voir le contenu de cette feuille.

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    le sujet étant assez large, je suggère un peu de littérature :
    https://laurent-ott.developpez.com/t...vba-tome-5/#LI
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    deux solutions:
    • Masquer la feuille puis dans l'onglet Révision > Protéger le classeur, saisir un mot de passe. La structure du classeur ne pourra plus être modifiée sans mot de passe. Il ne sera donc plus possible d'ajouter ou de supprimer des feuilles, ni d'en afficher ou d'en masquer sans d'abord ôter la protection;
    • Passer dans l'éditeur VBA et, dans la fenêtre de l'arborescence du projet, cliquer sur la feuille à protéger. Dans ses propriétés (F4 si non visibles), choisir Visible = xlVeryHidden. Il faut alors protéger le code par mot de passe (clic droit sur le projet, Propriétés, Protection, et saisir le mot de passe). A la prochaine ouverture, le code ne sera plus accessible que par mot de passe, et il sera nécessaire d'accéder au code pour rendre à nouveau la feuille visible pour la modifier manuellement.



    Ces "protections" peuvent sauter en 10 secondes grâce à des logiciels que l'on peut trouver sur le net.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour DJO2020, le forum

    Je sais pas si ma proposition va t'aider ou non ...d'ailleurs je suis qu'un autodidacte VBA ... aussi j'ai pas testé la proposition sur un réseau multi-utilisateurs
    donc à tester avec prudence
    Je propose de masquer, à l'ouverture du fichier, toutes les onglets à l'exception de la feuille nommée BASE et en même temps désactiver le clic droite souris pour empêcher l'affichage de l'onglet souhaité via le souris. Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_Open()
    Application.CommandBars("Ply").Enabled = False
     Dim sh As Worksheet
     For Each sh In ThisWorkbook.Worksheets
      With sh
       If Not .Name = "BASE" Then .Visible = False
      End With
     Next
    End Sub
    activé le mode clic droite souris lors de la fermeture de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Ply").Enabled = True
    End Sub
    Sur l'onglet base tu insère des bouton pour chacun clic sur l'onglet souhaité en ce moment il recevra un input box pour saisir le mot de passe et si le mot de passe est correcte il accède à l'onglet souhaité si non un message box lui demandant de contacter l'administrateur de base des données
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Bouton1_Cliquer()
    Dim VALEUR As String
    MotDePasse = Application.InputBox("merci de saisir votre mot de passe : ", "titre le l'inputbox", , , , , , 3)
    If MotDePasse = "PPPP" Then
    Sheets("PRODUCTION").Visible = True
    Sheets("PRODUCTION").Select
    Else
    MsgBox "Mot de passe invalide...veuillez contacter l'administrateur de la base des données"
    End If
    End Sub
    dans l'exemple ci joint l'accès à l'onglet PRODUCTION mot de passe "PPPP"
    l'onglet COMMERCIAL mot de passe "CCCC"
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/10/2007, 12h00
  2. Triez les données d'une feuille
    Par lolo1664 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/08/2007, 16h02
  3. Réponses: 3
    Dernier message: 31/01/2007, 17h46
  4. Réponses: 2
    Dernier message: 16/10/2006, 11h24
  5. Importer les données d'une feuille EXCEL
    Par codial dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/02/2006, 09h07

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