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 :

constante password problème [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut constante password problème
    Bonjour,

    Bonjour,
    J'ai ce bout de code qui coince au niveau de la ligne PW.
    Afin de ne pas encode à chaque SUB le password, j'aurais voulu le mettre en constante et donc dans un module j'ai tapé CONST PW = "1234".
    Mais cela bloque quand même. PQ?
    Merci pour votre aide.

    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
    Private Sub CBAdmin_Click()
     
    Dim ws As Worksheet
     
    If TBPW.Value = PW Then
        ThisWorkbook.Unprotect Password:=PW
        For Each ws In ThisWorkbook.Worksheets
                ws.Visible = True
        Next ws
        Unload frm_Admin
    Else
        TBPW.Value = "Insert Password..."
    End If
     
    End Sub

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    Afin de ne pas encode à chaque SUB le password, j'aurais voulu le mettre en constante et donc dans un module j'ai tapé CONST PW = "1234".
    Dans quel module ? Est-ce le même que celui où tu as la fonction que tu nous montres ?
    Si ce n'est pas le même, le module ne la connaîtra pas.
    Voici un tuto qui l'explique : https://silkyroad.developpez.com/VBA/LesVariables/#LV
    Pour qu'une variable puisse être utilisée dans tous les modules, il faut la déclarer en Public.

  3. #3
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    mon code est dans le code de l'USERFORM
    Const est dans un module standard.

    si j'ai bien compris, si je veux mettre mon PW comme constante je dois l'indiquer dans un module en PUBLIC (PUBLIC PW = "1234")
    et mettre mon code de l'USF également dans un module

    ok?

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Pour que la variable soit utilisable dans toutes les macros du projet, il faut utiliser l'instruction Public et la variable doit impérativement être placée en tête d'un module standard.
    Donc oui, il faut mettre l'instruction Public devant ta constante et faire cela dans un module.

    et mettre mon code de l'USF également dans un module
    NON ! Le code du UserForm doit rester sous le UserForm.
    Le tuto explique bien "Pour que la variable soit utilisable dans toutes les macros du projet". Donc ça sera ok pour les macros du UserForm aussi.

  5. #5
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    j'ai mis ce code dans un module standard que j'ai nommé Déclarations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const PW = "1234"
    voici le code dans mon usf :
    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
    Private Sub CBAdmin_Click()
    
    Dim ws As Worksheet
    
    If TBPW.Value = PW Then
        ThisWorkbook.Unprotect Password:=PW
        For Each ws In ThisWorkbook.Worksheets
                ws.Visible = True
        Next ws
        Unload frm_Admin
    Else
        TBPW.Value = "Insert Password..."
    End If
    
    End Sub
    quand je tape 1234 dans TBPW, il le reconnait et considère comme vrai dans le IF MAIS il coince à la ligne qui suit (en gras). PQ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    cela fonctionne maintenant
    Merci

  7. #7
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    J'ai fait un test chez moi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Unprotect ("1234")
    Le code tourne mais n'engendre rien. J'avoue que je ne sais pas bien si on peut déprotéger un classeur si on l'a déjà ouvert. Je ne sais même pas si c'est possible "à la main".
    Je ne sais pas comment fonctionne la fonction Unprotect pour un classeur. Pour une feuille, je sais l'utiliser, mais pour un classeur, pas d'idées.

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

Discussions similaires

  1. petit problème de mot de passe crypté PASSWORD()
    Par bris dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 09/02/2007, 16h01
  2. problème avec mes constantes
    Par salseropom dans le forum C
    Réponses: 6
    Dernier message: 10/05/2006, 17h37
  3. [Configuration] Problème sur définition de constante
    Par Yobs dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/03/2006, 11h40
  4. VBA Excel - Problème de password VBA
    Par sat478 dans le forum VBA Word
    Réponses: 5
    Dernier message: 11/01/2006, 17h38
  5. Problème Constante chaîne non terminée
    Par nborde dans le forum ASP
    Réponses: 5
    Dernier message: 25/12/2005, 16h14

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