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 :

Mot de passe sur VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut Mot de passe sur VBA Excel
    Bonjour à tous. Je souhaiterais avoir le code permettant d'exiger un mot de passe à l'ouverture d'un formulaire (ou userform). J'aimerais également obtenir le code permettant de modifier un mot de passe (procédure par laquelle on demande l'ancien mot de passe, le nouveau mot de passe et retaper le nouveau mot de passe). Je voudrais préciser que je suis débutant en VBA. Je vous remercie et j'attends vos réponses.

  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 : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

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

    Pour la première question, un truc du style pourrait faire l'affaire
    Code à insérer dans un module standard : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Mdp()
    Dim Mdp As String, Pw As String
     
    Pw = "taratata" '<-- mot de passe
     
    recom:
    Mdp = InputBox("Veuillez introduire votre mot de passe", "Password")
     
    If Mdp = Pw Then
        UserForm1.Show
    Else
        If MsgBox("Mot de passe non valide, voulez-vous réessayer ?", vbExclamation + vbRetryCancel, "Invalide Password") = vbRetry Then GoTo recom
    End If
     
    End Sub

    Par contre pour la seconde question, là ça demande quelques précisions complémentaires :
    1. où vas tu stocker le (ou les) mot de passe ?
    2. il y aura t-il plusieurs utilisateurs ayant chacun leur mdp ?
    3. si plusieurs utilisateurs ayant chacun leur mdp, ils s'identifieront comment, via un login ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut
    Merci beaucoup Fring. En fait, pour le stockage des mot de passe je pourrais bien les mettre dans une feuille excel ou autre chose que tu pourrais me proposer. il ya un seul utilisateur qui doit pouvoir définir son mot de passe et le changer quand il le désire. je te remercie encore pour ta disponibilité.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Par défaut
    bonjour

    tu peux effectivement stocker ce mdp dans une feuille à part et cacher cette feuille pour que personne n'y ai accès ( ici une feuille appelée MDP)

    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
     
    sub changer_MDP ()
    Dim Mdp as String, Dim Pw as String
     
    Pw = sheets("MDP").Range("A1")
     
    recom:
    Mdp = InputBox ("entrez votre ancien Mot de passe", "Changement de MDP")
     
             If Mdp=Pw then
                 Mdp = Inputbox("Entrez votre nouveau Mot de passe","Changement de MDP")
                Sheets("MDP").Range("A1")=Mdp
             Else 
                If MsgBox ("Mot de passe invalide",vbExclamation + vbRetryCancel, "Mauvais MDP") = vbRetry Then GoTo recom
             End If
     
    End Sub
    pour être sur que ta feuille MDP soit innaccessible dans dans le module d'ouverture du classeur tu mets


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
    If Sheets("MDP").Visible = xlSheetVisible Then Sheets("MDP").Visible = xlSheetVeryHidden
    End Sub
    enfin dans le code que t'as donné fring change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Pw = "taratata" '<-- mot de passe
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Pw = Sheets("MDP").range("A1") '<-- mot de passe
    enfin histoire d'éviter les erreurs place tes déclarations de variables en tête de ton module et enlève les de tes procédures

  5. #5
    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 : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Je manque d'imagination là, je n'ai pas d'autres idées pour l'instant que de stocker le mot de passe dans une cellule.
    Pour le code permettant d'afficher le UserForm
    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
    Sub Mdp()
    Dim Mdp As String
     
    If Range("IV65535").Value = "" Then
        MsgBox "Aucun mot de passe n'est créé pour l'instant, veuillez introduire votre nouveau mot de passe"
        Range("IV65535") = InputBox("Nouveau de passe", "Création MDP")
        ActiveWorkbook.Save
        UserForm1.Show
        Exit Sub
    End If
     
    recom:
    Mdp = InputBox("Veuillez introduire votre mot de passe", "Password")
     
    If Mdp = Range("IV65535").Value Then
        UserForm1.Show
    Else
        If MsgBox("Mot de passe non valide, voulez-vous réessayer ?", vbExclamation + vbRetryCancel, "Invalide Password") = vbRetry Then GoTo recom
    End If
     
    End Sub
    Pour le code permettant de modifier le mot de passe
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub Changer_Mdp()
    Dim Oldpw As String, Newpw1 As String, Newpw2 As String
     
    If Range("IV65535").Value = "" Then
        MsgBox "Aucun mot de passe n'est créé pour l'instant, veuillez introduire votre nouveau mot de passe"
        Range("IV65535") = InputBox("Nouveau de passe", "Création MDP")
        ActiveWorkbook.Save
    End If
     
    recom:
    Oldpw = InputBox("Veuillez introduire votre ancien mot de passe", "Old Password")
     
    If Oldpw <> Range("IV65535") Then
        If MsgBox("Mot de passe non valide, voulez-vous réessayer ?", vbExclamation + vbRetryCancel, "Invalide Password") = vbRetry Then
            GoTo recom
        Else
            Exit Sub
        End If
    Else
        Newpw1 = InputBox("Veuillez introduire votre nouveau mot de passe", "New Password")
        Newpw2 = InputBox("Pour vérification, veuillez introduire une seconde fois votre nouveau mot de passe", "Nex Password")
        If Newpw1 <> Newpw2 Then
            If MsgBox("Erreur lors de la vérification, voulez-vous recommencer ?", vbExclamation + vbRetryCancel, "Vérification") = vbRetry Then
                GoTo recom
            Else
                Exit Sub
            End If
        Else
            Range("IV65535") = Newpw2
            ActiveWorkbook.Save
            UserForm1.Show
        End If
    End If
    End Sub
    Range("IV65535") est une solution éventuelle que l'on peut remplacer par une autre cellule dans une autre feuille d'un autre classeur, par un fichier txt, etc...

    Il faut également penser à protéger les macros par un mot de passe : clic droit sur VBAProject --> propriétés.

    Enfin il faut bien se dire que cette protection n'est qu'une "pseudo" protection qui pourra être rapidement contournée par un bricoleur averti.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut
    merci bocou a Deuxmains et Fring vous êtes vraiment sympa de partager. G pense ke g vai essayer les codes ke vous m'avez donné!!! Encore merci pour votre disponibilité!!!!!!!

Discussions similaires

  1. [Toutes versions] Mot de passe sur un projet VBA excel
    Par zergo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/10/2012, 15h32
  2. [XL-2003] Mot de passe sur bouton Excel
    Par lili189 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/06/2012, 11h39
  3. [XL-2010] Mot de passe sur feuille excel
    Par ARTHUR42 dans le forum Excel
    Réponses: 5
    Dernier message: 28/10/2010, 18h09
  4. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05
  5. [VBA-E]Mettre un mot de passe sur l'onglet Modules
    Par flyfrog dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/06/2006, 14h25

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