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 VBA pour changer de mot de passe [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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
    Je ne comprends pas trop ce que tu souhaites réaliser ni l'utilité de la variable publique mdp.

    Pourrais-tu expliquer ce que tu souhaites réaliser en français (pas en vba)?
    "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...
    ---------------
      0  0

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Lorsque je livre le fichier, j'ai prévu un mot de passe. Mais le responsable du service souhaite pouvoir changer de mot de passe quand bon lui semble.

    C'est pourquoi j'ai créé dans la feuille "INTRO" du fichier un bouton qui permet d'ouvrir un formulaire. Dans ce formulaire, il indique l'ancien mot de passe (mot de passe stocké dans la feuille "Passe" en cellule A1, feuille masquée et rendue inaccessible, puisque l'éditeur de Vba est verrouillé).

    Une fois le mot de passe changé, il doit être actif pour chacune des feuilles du fichier (celles concernées par ce mot de passe). Il remplace l'ancien mot de passe.
      0  0

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Donc si je comprend bien le fonctionnement (que j'ai testé, et qui fonctionne dans ton fichier), je dois également supprimer tous les "mdp"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Activate()
    ActiveSheet.Unprotect mdp
    Dim An2 As Byte, N As Integer
    An2 = DatePart("ww", Date, 2, 2)
    An = Year(Now())
        Range("F3") = "CLAS" & "-" & "CHV" & "-" & An & "-" & An2
        ActiveSheet.Protect mdp, UserInterfaceOnly:=True
    End Sub
      0  0

  4. #4
    Invité
    Invité(e)
    Par défaut
    j'avais supprimer mes message parce que j'avais des -1 que je ne comprenais pas la justification!

    pas cool pour toi mais pas cool pour moi!

    j’accepte les -1 mais quand il devient systématique je ne m'engage plus!

    ce n'est pas parce que je suis un mauvais joueur mais par incompréhension!

    en fait c'est ce genre se solution que je proposai depuis le début!

    dernière mouture!
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 13/03/2018 à 15h02.
      2  1

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Je ne mets jamais de -1, car pour moi toute réponse vaut la peine d'être remerciée, même si elle est déplaisante.

    J'ai mis en place ton code, mais j'ai un message d'erreur lorsque je clique sur le bouton pour afficher le formulaire de changement de mot de passe - "Erreur de compilation - Variable ou procédure attendue, et non un module"
      1  0

  6. #6
    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
    Après la validation du nouveau mot de passe dans le formulaire, tu dois:
    1. la déprotéger avec l'ANCIEN mot de passe;
    2. la protéger avec le nouveau.


    Puis tu dois stocker le nouveau mot de passe à la place de l'ancien. Je te propose de t'inspirer de la proc suivante, à laquelle tu passes les deux MDP. Evidemment, si toutes les feuilles ne sont pas protégées, tu devras placer une condition au sein de la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ProtectWithNewMDP(OldMDP As String, NewMDP As String)
      Dim ws As Worksheet
     
      For Each ws In ThisWorkbook
        ws.Unprotect OldMDP
        ws.Protect NewMDP, UserInterfaceOnly:=True
      Next
    End Sub
    Tu appelles alors cette proc sur le btnValider_Click et tu n'oublies pas de stocker le nouveau MDP à la place de l'ancien.

    Essaie toujours de découper ton code en procédures et fonctions qui n'ont qu'une responsabilité.

    Ton userform a la responsabilité de saisir le nouveau mot de passe. Ma proc a la responsabilité de modifier les MDP des feuilles protégées.
    "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...
    ---------------
      1  0

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour Pierre, bonjour le forum,

    Toutes mes excuses d'avoir tardé à te répondre, mais après notre dernière discussion j'ai du partir en réunion et après il était un peu tard.

    Pour modifier le mot de passe, j'utilise ce code qui est lié au bouton "Valider" du formulaire. Si j'ai bien compris, je dois faire une compilation du code que tu m'as proposé, modifié bien entendu, et du mien ?
    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
     
    Private Sub CmbValide_Click()
     
    Unload Me
     
           mdp = Sheets("Passe").Cells(1, 1).Value
    If AncMdp.Value = mdp Then
          Sheets("Passe").Cells(1, 1).Value = NouvMdp.Value
    mdp = NouvMdp.Value
     
    Else
     
    MsgBox "L'ancien mot de passe n'est pas valable"
     
    End If
     
    End Sub
      0  0

Discussion fermée
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2017, 23h28
  2. Réponses: 3
    Dernier message: 21/10/2015, 14h43
  3. Code VBA pour la saisie d'un mot de passe
    Par narr255 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/10/2010, 12h17
  4. Macro VBA pour mettre colonne en ligne avec cellule fusionnée
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/01/2008, 06h09
  5. [VBA-E] Macro VBA pour personaliser mon .doc depuis mon .xls
    Par korntex5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2006, 16h01

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