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 :

Macro mot de passe tourne en boucle.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut Macro mot de passe tourne en boucle.
    Bonjour à tous les lecteurs : J'ai des lacunes en matière de programmation VBA.
    Je besoin de votre aide pour terminer une macro c'est pourtant simple à comprendre mais mon anglais mon fait défaut.
    Je tourne en boucle sur mon code
    Principe : Si mot de passe "OK" Alors on exécute la procédure Si non on Quitte le fichier

    Si le MDP est ok la macro me demande à nouveau le MDP et c'est cette fonction qui ne fonctionne pas

    Par avance merci pour votre aide.

    Code vb : 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
     
    Sub Accès()
     
    Const MdP As String = "toto" 'tapez le mot de passe.
     
     
    Dim Mdp1 As Variant, x As Integer
    For x = 3 To 1 Step -1 'Nombre d'essais = 3
      Mdp1 = Application.InputBox("Entrez le mot de passe" & Chr(10) & "il vous reste " & x & " essais")
      If VarType(Mdp1) = vbBoolean Then Exit For
      If Mdp1 = MdP Then
        MsgBox "Ok Mot de passe valide" 'à remplacer par la future procédure
     
        Range("B4").Select '(pour l'exemple) si ok ma procedure suivante
        'Exit Sub
       ' Next
        If Mdp1 <> MdP Then
        MsgBox "Ok Mot de passe non valide"
     
        'si pos ok on quit l'application
     
        'Next
     
        End If
        End If
        Next
     
        'Application.DisplayAlerts = False
        ThisWorkbook.Close
        'Application.DisplayAlerts = True
        Application.Quit
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Teste comme ceci
    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
    Sub Accès()
     
    Const MdP As String = "toto" 'tapez le mot de passe.
     
     
    Dim Mdp1 As Variant, x As Integer
    For x = 3 To 1 Step -1 'Nombre d'essais = 3
      Mdp1 = Application.InputBox("Entrez le mot de passe" & Chr(10) & "il vous reste " & x & " essais")
      If VarType(Mdp1) = vbBoolean Then Exit For
      If Mdp1 = MdP Then
        MsgBox "Ok Mot de passe valide" 'à remplacer par la future procédure
     
        Range("B4").Select '(pour l'exemple) si ok ma procedure suivante
        Exit Sub
       ' Next
        ElseIf Mdp1 <> MdP Then
        MsgBox "Ok Mot de passe non valide"
     
        'si pos ok on quit l'application
     
        'Next
     
        End If
     
        Next
     
        'Application.DisplayAlerts = False
        ThisWorkbook.Close
        'Application.DisplayAlerts = True
        Application.Quit
    End Sub

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une proposition

    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
    Sub Accèstoto()
    Const MdP As String = "toto"
    Dim Mdp1 As Variant, MdpOK As Boolean, Cpt As Long
        While Not MdpOK And Cpt < 3
            Mdp1 = Application.InputBox("Entrez le mot de passe" & Chr(10) & "il vous reste " & 3 - Cpt & " essai" & IIf(Cpt < 2, "s", ""))
            If VarType(Mdp1) = vbBoolean Then Exit Sub
            If Mdp1 = MdP Then MdpOK = True Else Cpt = Cpt + 1
        Wend
     
        If Not MdpOK Then
            'ThisWorkbook.Close
            MsgBox "trop de tentatives, fermeture du fichier"
        Else
            MsgBox "ok : on lance la procédure"
        End If
    End Sub

  4. #4
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut
    RE: Un très grand merci à tous les deux

    Mon problème est résolu

    J'aurais peut-être besoin de vous pour 2 autres procédures si je n'arrive pas à m'en sortir.

    Encore Merci.

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous,

    Salut Joe (ravi de te retrouver)

    Personnellement, pour une meilleure exploitation de la méthode Inputbox, je précise toujours son paramètre "Type".

    Une variante en évitant le Exit Sub

    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
    Sub Accèstoto_Marcel()
     
    Const MdP As String = "toto"
     
    Dim Mdp1 As Variant, MdpOK As Boolean, Cpt As Long
    Dim lemessage As String
     
        MdpOK = False
        Cpt = 0
     
        Do
            lemessage = "Entrez le mot de passe" & Chr(10) & "il vous reste " & 3 - Cpt & " essai" & IIf(Cpt < 2, "s", "")
            Mdp1 = Application.InputBox( _
                                Prompt:=lemessage, _
                                Type:=2)
            Debug.Print Mdp1
            If Mdp1 = MdP Then MdpOK = True Else Cpt = Cpt + 1
        Loop While Cpt < 3 And MdpOK = False And Mdp1 <> False
     
        If Not MdpOK Then
            'ThisWorkbook.Close
            MsgBox "trop de tentatives, fermeture du fichier"
        Else
            MsgBox "ok : on lance la procédure"
        End If
     
     
    End Sub

  6. #6
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut
    RE : Merci également à toi Marcel
    je reviens tout à l'heure pour une autre demande dans un nouveau post.

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

Discussions similaires

  1. [XL-2019] Macro mot de passe
    Par PIERRO12345 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/05/2020, 18h59
  2. [XL-2016] Macro mot de passe
    Par Vba14 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/03/2019, 09h29
  3. [XL-2010] Créer Macro feuil par macro mot de passe
    Par moi244 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/06/2013, 01h33
  4. suppression d'une macro d'une feuille excel protegée par mot de passe
    Par adilissimo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2007, 20h25
  5. [VBA] EXCEL comment mettre un mot de passe dans d’une macro?
    Par POUY64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/01/2006, 16h13

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