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 :

Aide pour compréhension d'un code [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut Aide pour compréhension d'un code
    Bonjour à tous,

    Je souhaiterais utiliser ce code de Boisgontier, que je remercie au passage, mais je ne comprends pas comment il fonctionne. Il sert à protéger une feuille et de la protéger selon l'utilisateur, ça j'ai compris, mais j'aimerai comprendre comment se déroule la procédure. Pourriez-vous éclairer ma lanterne s'il vous plait ? Je vous en remercie par avance

    Si l'utilisateur n'appartient pas à la liste des utilisateurs, le fichier est en lecture seule
    ProtectionLectureSeule
    Liste utilisateurs
    Boisgontier
    Dupont
    La liste des utilisateurs est dans un onglet caché (xlveryhidden) et donc invisible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
      nom = Environ("username")
      Set temp = [utilisateurs].Find(what:=nom)
      If temp Is Nothing Then
        ActiveWorkbook.ChangeFileAccess xlReadOnly
      End If
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Dans le cas présent, [Utilisateurs] est le nom donné à la liste des utilisateurs. Pour créer cette liste, sélectionnez la plage des noms, puis dans la zone de nom, écrivez utilisateurs et validez par ENTREE.
    Au départ, le fichier est censé être accessible en lecture écriture, puis à l'ouverture du classeur, selon le nom de la personne qui se connecte, le fichier sera accessible en lecture écriture ou en lecture seulement.

    nom = Environ("username") ou nom = Application.UserName, charge dans la variable "nom" le nom de l'utilisateur du PC
    Set temp = [utilisateurs].Find(What:=nom, Lookat:=xlWhole), recherche le nom de l'utilisateur dans la liste nommée "utilisateurs" et le met dans la variable "temp", j'ai rajouté "lookat:=xlwhole", pour ne chercher que le nom exact.
    If temp Is Nothing Then
    ActiveWorkbook.ChangeFileAccess xlReadOnly
    End If

    Si dans la liste "utilisateurs", le nom n'est pas trouvé alors le fichier passe en lecture seule, sinon il est reste accessible en "lecture écriture" à l'utilisateur.
    Vous pouvez remplacer [utilisateurs], par la plage contenant la liste des noms à tester, exemple: Set temp =feuil2.range("A1:A10").Find(What:=nom, Lookat:=xlWhole)

    Voilà.

    Cdlt

  3. #3
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Bonjour ARTURO83,

    Merci beaucoup pour ces explications qui me rendent plus clair ce code. Tout compte fait ce n'est pas trop ce que je recherche.
    Je veux juste utiliser un mot de passe qui permet la saisie ou pas, mais pas de contrôle sur l'utilisateur de la machine.

    Encore merci.
    Cordialement

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

Discussions similaires

  1. Outil d'aide pour le refactoring de code
    Par progfou dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 14/03/2008, 14h04
  2. Réponses: 1
    Dernier message: 29/12/2007, 13h13
  3. Demande d'aide pour un problème de code source sur devC++
    Par Rickantonais dans le forum Débuter
    Réponses: 28
    Dernier message: 01/08/2007, 14h09
  4. [ClearCase]AIDE pour compréhension svp!
    Par wrida dans le forum Framework .NET
    Réponses: 3
    Dernier message: 07/02/2007, 11h44
  5. [VBA-E] Aide pour simplification de mon code.
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/05/2006, 11h34

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