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
    Invité
    Invité(e)
    Par défaut
    Version Sauvegarde Passe Word!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Property Get PassWord(Optional ByRef WS As Worksheet = Nothing, Optional Modifier As Boolean) As String
    Static PSW As String:  'decriptage
    If Modifier = True Then PSW = UserForm1.Modifier(WS): Unload UserForm1
    If PSW <> CRYPTAGE(ThisWorkbook.Sheets("Feuil1").Range("C1"), "TEST", False) Then PSW = UserForm1.Passe(WS): Unload UserForm1
    PassWord = PSW
    End Property
    Sub test()
    '    Debug.Print CRYPTAGE(123, "tutu", True)
    Debug.Print PassWord(ThisWorkbook.Sheets(1), True)
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub En_Mode_Vba_retrouve_pass_Word_Décript()
    Debug.Print CRYPTAGE(ThisWorkbook.Sheets("Feuil1").Range("C1"), "TEST", False)
    End Sub
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 13/03/2018 à 12h15.
      1  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
    Je n'aurai jamais trouvé cette solution. Merci beaucoup.
    Je modifie mon projet et je te tiens au courant.
      0  0

  3. #3
    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
    Pourquoi devoir enlever la protection?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.protect userinterfaceonly:= true
    permet aux macros de fonctionner sur 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

  4. #4
    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
    Pierre,
    Tu mets ton code ici ? C'est cà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.Unprotect mdp 'remplacé par ActiveSheet.Unprotect UserInterfaceOnly
      0  0

  5. #5
    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
    Si je réponds, c'est que cela ne me dérange pas...
    "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

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    tu as passé cette étape depuis un moment mais tu peux mettre ton mdp dans un nom caché plutôt que de monopoliser une feuille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Names.Add Name:="mdp", RefersTo:="mon_mot_de_passe", Visible:=False
    MsgBox [mdp]
    eric
      1  0

  7. #7
    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
    En fait, tu dois une première fois protéger ta feuille avec le code que je te donnes (en y ajoutant d'autres arguments tels que le mdp et autres...).

    Lorsque la feuille est protégée en mode UserOnlyInterfaceOnly=True, seul l'interface Excel est protégé et tu peux manipuler ta feuille sans aucun souci par macro.

    Au pire, tu lances la commande dans la fenêtre d'exécution (CTRL+G)
    "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

  8. #8
    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
    Très bien, merci. Je vais modifier mes codes en focntion
      0  0

  9. #9
    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
    Alors j'ai fait selon le code suivant, mais j'ai un message d'erreur sur la ligne en gras.
    "Erreur d'exécution 1004" - Erreur définie par l'application ou l'objet
    Qu'Est-ce qui cloche ?
    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, UserInterfaceOnly:=True
    Dim An2 As Byte, N As Integer
    An2 = DatePart("ww", Date, 2, 2)
    An = Year(Now())
        Range("F3") = "CLAS" & "-" & "PV" & "-" & An & "-" & An2
        ActiveSheet.Protect mdp, UserInterfaceOnly:=False
    End Sub
      0  0

  10. #10
    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
    Pour la modification du mot de passe en cliquant sur le bouton du formulaire, je penses avoir trouvé la solution

    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 CmbValide_Click()
    Unload Me
    mdp = Sheets("Passe").Cells(1, 1).Value 'Cette partie est manquante dans la 1ère version
    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

  11. #11
    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
    Il faudrait que tu donnes le code VBA que tu as utilisé. Sans cela, difficile de répondre (Mettre un fichier dont le projet VBA est modifié par mot de passe n'aide pas )
    "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

  12. #12
    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,

    Voici le code lié au bouton qui sert à afficher le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CommandButton1_Click()
    Load usfPwd
    usfPwd.Show
    usfPwd.tboNewPwd.Text = ""
    usfPwd.tboOldPwd.Text = ""
    End Sub
    Le code module qui permet de changer de 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
    35
    36
    37
    38
    39
     
    Option Explicit
     
    Property Get Test() As String
      Test = "Bonjour"
    End Property
     
    Sub TestProtection()
      Debug.Print Feuil1.Protection Is Nothing
    End Sub
     
    Sub ChangePassWord(OldPwd As String, NewPwd As String)
      Dim ws As Worksheet
     
      For Each ws In ThisWorkbook.Worksheets
        If ws.ProtectContents Then
          ws.Unprotect OldPwd
          ws.Protect NewPwd, UserInterfaceOnly:=True
        End If
      Next
    End Sub
     
     
    Sub UpdatePassWords()
      Dim OldPwd As String, NewPwd As String
      Dim CurrentPwd As String
     
      usfPwd.Show
      OldPwd = usfPwd.tboOldPwd
      NewPwd = usfPwd.tboNewPwd
      Unload usfPwd
      CurrentPwd = Range("CurrentPassWord").Value
      If CurrentPwd = OldPwd Then
        ChangePassWord OldPwd, NewPwd
        Range("CurrentPassWord").Value = NewPwd
      Else
        MsgBox "L'ancien mot de passe saisi est incorrect", vbExclamation
      End If
    End Sub
    Le code lié à chacune des feuilles de calcul :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Private Sub Worksheet_Activate() 'Ce code permet de mettre le début d'un numéro incrémenté
    ActiveSheet.Unprotect
    Dim An2 As Byte, N As Integer
    An2 = DatePart("ww", Date, 2, 2)
    An = Year(Now())
        Range("F3") = "CLAS" & "-" & "CHV" & "-" & An & "-" & An2
        ActiveSheet.Protect , UserInterfaceOnly:=True
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range) 'la suite du numéro incrémenté
    ActiveSheet.Unprotect
    If Not Application.Intersect(Target, Range("F15")) Is Nothing Then
    If Range("F15") = "" Then
        N = Range("H3")
        N = N
        Range("H3") = N
        Else
        N = Range("H3")
        N = N + 1
        Range("H3") = N
    End If
    End If
        ActiveSheet.Protect , UserInterfaceOnly:=True
    End Sub
     
    Private Sub CmbValide_Click() 'copie des valeurs vers un tableau situé dans une autre feuille
    Dim Lig As Long, DerLig As Long
    Dim ShtS As Worksheet, ShtF As Worksheet
     
    Set ShtS = Sheets("Chèques_vacances")
    Set ShtF = Sheets("Rec_CV")
     
    Application.ScreenUpdating = False
    ShtF.Unprotect
     
    DerLig = ShtF.Cells(Rows.Count, "A").End(xlUp).Row + 1
    For Lig = 2 To DerLig
     
    ShtF.Range("A" & DerLig) = ShtS.Range("F3").Value
    ShtF.Range("B" & DerLig) = ShtS.Range("H3").Value
    ShtF.Range("C" & DerLig) = ShtS.Range("F15").Value
    ShtF.Range("D" & DerLig) = ShtS.Range("F13").Value
    ShtF.Range("E" & DerLig) = ShtS.Range("F19").Value
    ShtF.Range("F" & DerLig) = ShtS.Range("G19").Value
    ShtF.Range("G" & DerLig) = ShtS.Range("H19").Value
    ShtF.Range("H" & DerLig) = ShtS.Range("D23").Value
    ShtF.Range("J" & DerLig) = ShtS.Range("B23").Value
    ShtF.Range("K" & DerLig) = ShtS.Range("B32").Value
    ShtF.Range("L" & DerLig) = ShtS.Range("F5").Value
    ShtF.Range("M" & DerLig) = ShtS.Range("C36").Value
    ShtF.Range("N" & DerLig) = ShtS.Range("F36").Value
    Next Lig
    ActiveWindow.SelectedSheets.PrintOut copies:=2, Collate:=True
    ShtF.Protect , UserInterfaceOnly:=True
    Application.ScreenUpdating = True
    End Sub
      0  0

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    oui je n'es pas géré ce type de contrôle! il es possible de rajouté un test!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If tboOldPwd = tboNewPwd Then MsgBox "Err": Exit Sub
    J'ai regardé ce qu'est le cryptage de Vigenère, que je ne connaissais, cela m'a l'air très complexe.
    je prend Anatole j'ai une clé de Cryptage Test je prend le premier caractère de Anatole sous la forme du code ascii A=65 même chose pour Test! T=82

    65-82=-19 => chr(255+(Asc("A")-Asc("T")))=i dans l'idée!
    Dernière modification par Invité ; 14/03/2018 à 09h26.
      1  0

  14. #14
    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
    D'accord merci pour ta réponse.
      0  0

  15. #15
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Unprotect mdp
    Unprotect attend un seul argument, à savoir le mdp. Tu ne dois utiliser UserInterfaceOnly qu'au moment du Protect
    "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

  16. #16
    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
    Merci Pierre.
    Après modification, j'ai ce nouveau message d'erreur, c'est galère !

    Lorsque je clique sur l'onglet de la feuille pour l'activer, j'ai ce message "Mot de passe non valide. Vérifiez que la touche VERR.MAJ n'est pas activée et que vous respectez la bonne casse"
    Je n'y comprends rien

    C'est bon, j'ai trouvé. J'avais laissé un mot de passe dans "Protéger la feuille" de la barre de commandes.
      0  0

  17. #17
    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
    Donne le code avec les quelques lignes autour...

    Si tu fais cela sur Sheet_Activate, fais attention que mdp est une variable publique, et qu'elle a peut-être été réinitialisée (suite à plantage et arrêt du code, par exemple,...)

    En mode Debug, tu as intérêt à regarder les valeurs de tes variables.
    "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

  18. #18
    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
    C'est bon, j'ai trouvé. J'avais laissé un mot de passe dans "Protéger la feuille" de la barre de commandes, quel brêle je fais.

    Je crois que tout fonctionne correctement maintenant. Je vais encore faire quelques tests.

    Je vous remercie tous pour vos précieux conseils et pour l'aide que vous m'avez apporté.
      0  0

  19. #19
    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
    Citation Envoyé par NEC14 Voir le message
    [...]quel brêle je fais.[...]
    C'est souvent le cas quand on a la tête dans le guidon...

    Alleï... Bonne continuation et bonne fin de journée
    "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

  20. #20
    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
    Eh bien ça n'a pas durée ! Premier test, premier message d'erreur.

    Lorsque je change le mot de passe à l'aide de mon formulaire, je clique sur un onglet d'une feuille et boum ! le fameux message "Mot de passe non valide. Vérifiez que la touche VERR.MAJ n'est pas activée et que vous respectez la bonne casse" revient au galop.
    Le message d'erreur est lié à cette ligne du code suivant :
    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" & "-" & "PV" & "-" & An & "-" & An2
        ActiveSheet.Protect mdp, UserInterfaceOnly:=True
    End Sub
    Voici le code lié à mon formulaire :
    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 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
    Le code du module initialisation du mot de passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public mdp As String
     
    Sub init_mdp()
    mdp = Sheets("Passe").Cells(1, 1).Value
    End Sub
    A l'ouverture du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
    Call init_mdp
    End Sub
      0  0

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

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