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 :

Changer un mot de passe existant


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Par défaut Changer un mot de passe existant
    Bonjour tout le monde :-)
    j'ai un classeur qui adopte le même principe d'ouverture que celui de lpetitlolo dans cette discussion,
    j'aimerai aussi que les utilisateurs puissent changer leur mot de passe eux même, j'ai alors copié les codes et adaptés (correctement je crois) a mon fichier.
    le hic ça ne fonctionne pas, les caracteres des textbox sont visibles et malgré que les mots de passe utilisateur entrés sont corrects il indique une erreur (mot de passe actuel incorrect)...
    quelqu'un pourrait m'aider??

    Gestion Medicale Airport_TEST.xlsm

    les id sont insérés dans un combobox:
    ADMIN pass:ADMIN
    test1 pass:1
    test2 pass:2
    sous l'usf "encodage sorties" un bouton "administrateur" pass ADMIN
    sous l'usf "encodage entrées" un bouton "changement de mot de passe" qui appelle l'usf que je ne parviens pas a faire fonctionner :-(

  2. #2
    Membre confirmé
    Homme Profil pro
    Chargé d'Ingénierie et d'Analyses en Ressources Humaines
    Inscrit en
    Novembre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'Ingénierie et d'Analyses en Ressources Humaines
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 63
    Par défaut
    Salut,

    Remplace le code de ton userform "Encodage_Sortie" par celui-ci dessous :
    (J'ai juste passé en commentaires les parties inadaptées)

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Private Sub CommandButton6_Click()
    Administrateur.Show
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        Cancel = CloseMode = 0
    End Sub
    Private Sub Calendar1_Enter()
    TextBox1 = Calendar1.Value
    End Sub
     
    Private Sub ComboBox1_Change()
    Sheets("Sorties").Select
    [B2] = ComboBox1.Value
    End Sub
     
    Private Sub ComboBox2_Change()
    Sheets("Sorties").Select
    [E2] = ComboBox2.Value
    End Sub
     
    'Private Sub ComboBox5_Change()
    'Sheets("Sorties").Select
    '[D2] = ComboBox5.Value
    'End Sub
     
    Private Sub ComboBox4_Change()
    Sheets("Sorties").Select
    [D2] = ComboBox4.Value
    End Sub
     
    Private Sub CommandButton1_Click()
    Sheets("Entrées").Select
    Unload Encodage_Sorties
    Load Encodage_Sorties
    Encodage_Entrées.Show
    End Sub
     
    'Private Sub CommandButton2_Click()
    'Sheets("Sorties").Select
    'End Sub
     
    Private Sub CommandButton3_Click()
    Stock.Show
    End Sub
     
    Private Sub CommandButton4_Click()
    Rows("2:2").Select
      Selection.Insert Shift: 'x1Down, CopyOrigin:'x1FormatFromLeftOrAbove
      Unload Encodage_Sorties
    Load Encodage_Sorties
    Encodage_Sorties.Show
    End Sub
     
    Private Sub CommandButton5_Click()
     ActiveWorkbook.Save
    Application.DisplayAlerts = False
    Application.Quit
    End Sub
     
    Private Sub TextBox1_Change()
    Sheets("Sorties").Select
    [A2] = TextBox1.Value
    End Sub
     
    'Private Sub TextBox2_Change()
    'Sheets("Sorties").Select
    '[D2] = TextBox2.Value
    'End Sub
     
    'Private Sub TextBox3_Change()
    'Sheets("Sorties").Select
    '[E2] = TextBox3.Value
    'End Sub
     
     
    Private Sub TextBox4_Change()
    Sheets("Sorties").Select
    [C2] = TextBox4.Value
    End Sub
     
    'Private Sub TextBox8_Change()
    'Sheets("Sorties").Select
    '[G2] = TextBox8.Value
    'End Sub
    Tu as attribué des macros événementielles sur des objets inexistants (textbox et combobox).

    Chtik

  3. #3
    Membre averti
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Par défaut
    Bonjour,
    j'ai bien remplacé le code existant par celui que tu as modifié mais j'ai toujours le même message d'erreur:
    "le mot de passe actuel est incorrect"
    je joints le code de mon 1er userform (celui qui s'affiche au démarrage du classeur, avec login et 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
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Private Sub CommandButton2_Click()
    Dim w As Workbook
    For Each w In Application.Workbooks
    w.Save
    Next w
    Application.Quit
    End Sub
     
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
    If CloseMode = vbFormControlMenu Then Cancel = True
     
    End Sub
     
     
    'Code se déclenchant au clic sur bouton
    Private Sub CommandButton1_Click()
    'Si ComboBox1 est vide
    If ComboBox1 = "" Then
        'Message à l'utilisateur
        MsgBox "Identification obligatoire.", vbInformation
        'sortie de la procédure
        Exit Sub
    End If
    'Même chose avec TextBox2
    If TextBox2 = "" Then
        MsgBox "Mot de passe obligatoire.", vbInformation
        Exit Sub
    End If
    'Lance la fonction VerifMDP en utilisant :
        '- ComboBox1 comme paramètre "utilisateur"
        '- TextBox2 comme paramètre "MdP"
    'Si la fonction renvoie FAUX :
    If VerifMDP(ComboBox1, TextBox2) = False Then
        'c'est que le mot de passe ou l'utilisateur est faux donc
        'Message à l'utilisateur
        MsgBox "Erreur Mot de passe et/ou utilisateur. Merci de saisir à nouveau.", vbInformation
        'on vide les 2 textbox
        ComboBox1 = ""
        TextBox2 = ""
        'on sort de la procédure
        Exit Sub
    End If
    'A partir d'ici, le code ne se déroule que lorsque mdp et nom sont corrects.
    'On peut donc afficher les feuilles correspondants à l'utilisateur saisi
    AfficheFeuilles ComboBox1
    'masque l'UserForm
    Login.Hide
        'Validation du mot de passe
        'If PW = True Then  'valide
        Unload Me
        Encodage_Sorties.Show  'Affiche l'autre Userform
        'End If
    End Sub
     
     
     
    'code se déclenchant à l'ouverture de Userform1
    Private Sub UserForm_Initialize()
    'vidage des textbox :
    ComboBox1 = ""
    TextBox2 = ""
    'réglage des propriétés Caption
    'de l'Userform :
    Me.Caption = "Saisie du Mot de Passe"
    'des labels :
    Label1.Caption = "Utilisateur:"
    Label2.Caption = "Mot de Passe:"
    'du bouton
    CommandButton1.Caption = "Valider"
    'Remplace les caractères saisis dans le textbox2 par des astérisques
    Me.TextBox2.PasswordChar = "*"
    End Sub
    celui du module qui lui correspond:
    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
    Option Explicit
    'J'ai fait le chiox d'une fonction car il ne s'agit que de savoir
    'si le mot de passe correspond à l'utilisateur.
    'par conséquent, il nous faut une procédure qui compare les 2
    'et qui renvoie VRAI ou FAUX (d'où la fonction déclarée As Boolean).
        'ICI : (Utilisateur As String, MdP As String)
        'sont des paramètres envoyés lors du clic sur le bouton
     
    Function VerifMDP(Utilisateur As String, MDP As String) As Boolean
    Dim rngTrouve As Range
    VerifMDP = False 'par défaut, renvoie FAUX
     
    With Sheets("parametrage") 'dans la feuille paramétrage
         'cherche, colonne A, le nom d'utilisateur saisi
        Set rngTrouve = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole)
        If rngTrouve Is Nothing Then 'si il ne trouve pas
            VerifMDP = False 'la fonction renvoie faux
        Else 's'il le trouve
            'vérifie que le mot saisi feuille parametrgae colonne B est identique
            'au mot de passe saisi dans l'USF
            If rngTrouve.Offset(0, 1) <> MDP Then
                VerifMDP = False 'si FAUX
            Else
                VerifMDP = True 'si VRAI
            End If
        End If
    End With
    End Function
     
    Sub AfficheFeuilles(Utilisateur As String)
    Dim Col As Byte, i As Byte, Lig As Integer
     
    With Sheets("parametrage") 'dans la feuille paramétrage
        'comme on va boucler de la colonne 4 à la dernière colonne, on stocke le n° de la dern colonne :
        Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
        'on cherche colonne A le nom d'utilisateur saisi et on stocke son num de ligne
        Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row
        'boucle à partir de 3 car Feuil1 toujours affichée
        For i = 3 To Col
            If UCase(.Cells(Lig, i)) = "X" Then 'si on trouve un "X" dans la cellule
                Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille
            Else
                Sheets(.Cells(1, i).Value).Visible = xlSheetVeryHidden 'sinon on la masque
            End If
        Next i
    End With
    End Sub
     
    Sub test()
    Sheets("parametrage").Visible = True
    End Sub
    Merci pour ton aide

Discussions similaires

  1. Changer un mot de passe existant
    Par lpetitlolo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2014, 19h41
  2. [IB] Autoriser 1 user à changer son mot de passe
    Par qi130 dans le forum InterBase
    Réponses: 7
    Dernier message: 01/02/2005, 15h09
  3. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 12h25
  4. changer le mot de passe d'un utilisateur
    Par Rdjedidene dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 14h56
  5. [VB6] [ADO] [Access] Changer le mot de passe
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/03/2003, 10h45

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