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 :

Nouveau mot de passe regulièrement en Vba [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Nouveau mot de passe regulièrement en Vba
    Bonjour à tous,

    J'ai un formulaire UFpasse dans lequel l'utilisateur tape un mot de passe.
    J'aimerai savoir si il est possible avec Vba que le mot de passe soit changé tous les 3 mois. Un UserForm s'afficherait avec un message du genre "Votre ancien mot de passe est expiré, veuillez en proposer un nouveau".
    Taper l'ancien mot de passe, puis le nouveau.
    J'espère mettre bien fait comprendre.
    Merci pour vos idées

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Je dirait que oui mais il y a plusieurs façon certaine plus facile a contourner que d'autre (toutes le sont mais la n'est pas la question enfin j'espère sinon ca va relancer un de ces éternelle débat )

    La plus simple
    Tu rajoute un onglet masqué par macro avec xlVeryHide je crois (cela empêche de le rendre visible sans passer par macro) . Dedans tu stocke sur une cellule la date de modification de ton mot de passe. A l'ouverture tu teste la diférence entre la date de modification et la date actuelle si tu a plus de 90jours tu modifie le mot de passe.
    Tu en profite pour stocker le mot de passe dans cette onglet. et tu comparera la saisie de l'utilisateur a cette valeur.

    Tu peux essayer de te passer de l'onglet en faisant par exemple une mise a jour tous les 90jours a compté de la date de publication du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (datedecréation-dateactuelle) mod 90 =0 then
    Pour stocker le mot de passe tu créé u fonction dans un module indépendant (cest plus simple) qui teste la saisie et regarde si elle corespond a une certaine valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function verif(entree as string) as boolean
    if entree="Le mot de passe" then
    verif=true
    else
    verif=false
    end if
    end function
    Ensuite lors du changement du mot de passe tu efface cette fonction et tu la réécris avec le nouveau mot de passe (il y a un tuto pour piloter l'editeur de macro par macro)

    C'est les deux principale solution que je vois, j'espère que ca répond a ta question et que cela te mettra sur une piste. Et j'espère surtout pour toi que quelqu'un aura une meilleur proposition

  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
    J'ai pensé à quelque chose comme ça, mais je ne sais pas l'adapter et surtout qu'il se déclanche tous les 3 mois ou 90 jours.
    Qu'en pensez-vous ?

    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
     
    Application.ScreenUpdating = False
    essai = InputBox("Entrez votre ancien mot de passe", "Changement de mot de passe")
    If TestMotDePasse(essai) Then
    Application.ScreenUpdating = True
    MsgBox "Le code est erroné", vbCritical, "Erreur"
    Exit Sub 
    End If
    Do While True
    newcode = InputBox("Entrez votre nouveau mot de passe", "Changement de mot de passe")
    newcode2 = InputBox("Confirmez votre mot de passe", "changement de mot de passe")
    If newcode = newcode2 Then Exit Do
    MsgBox "Les deux nouveaux mots de passe sont différents. Essayez à nouveau.", vbCritical, "Erreur"
    Loop
    Sheets(1).Unprotect Password:=essai
    Sheets(1).Protect Password:=newcode
    MsgBox "Votre mot de passe a été changé. Votre nouveau mot de passe est " & newcode & "Conservez le précieusement !", vbOKOnly, "Changement effectué!"
    Application.ScreenUpdating = True

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut Nec14,
    A priori pas trop de soucis, tu peux imaginer à l'ouverture du fichier comparer la date du jour avec la date de la dernière modif de mot de passe.
    Il te suffit en plus du stockage du mot de passe de stocker la date de modif.
    Un petit exemple, à toi d'adapter et de dimensionner les variables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_Open()
     
    DateModif = Sheets("MdP").Range("B1") 'on imagine la date stockée dans la cellule B1 de la feuille MdP
     
    If Now() - DateModif > 90 Then
        UFNewPass.Show 'Affiche une nouvelle Userform pour vérifier ancien et définir nouveau
    End If
     
    End Sub
    Edit: Marre! Je suis toujours deuxième...au moins on est sur la même longueur d'onde

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut
    et que ce passerai il si on fermai l'userform ou si on changeai la date du systeme ? (je croi que dans ce dernier cas le mot de passe ne serai jamais changé non ?)


    c'est juste pour m'informer que je demande ca

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Citation Envoyé par garion28 Voir le message
    et que ce passerai il si on fermai l'userform ou si on changeai la date du systeme ? (je croi que dans ce dernier cas le mot de passe ne serai jamais changé non ?)


    c'est juste pour m'informer que je demande ca
    On peut empêcher de fermer l'userform par la croix, en ce qui concerne le changement de date du système, oui évidemment si on voit ça comme ça...
    mais alors on rentre dans le débat de la sécurisation et sans vouloir le nommer il y a un excellent "Cracker" qui se ferait une joir de détourner cette protection.

    Citation Envoyé par NEC14 Voir le message
    Certainement une question stupide, dans la feuille "MdP" dois-je également stocker la date de la dernière modif ?
    Pas de question stupide, il n'y a que les réponses peuvent l'être.
    En effet, tu peux faire un truc du genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    OldMdP = Sheets("Mdp").Range("A1")
     
    If TBOldMdP = OldMdP Then 'TBOldMdP serait un text box dans lequel l'utilisateur note son ancien MdP
        Sheets("Mdp").Range("A1") = TBNewMdp 'TBNewMdP text box avec le nouveau, vaudrait mieux ajouter une vérif pour pas qu'il soit vide
        Sheets("Mdp").Range("B1") = Now() 'On renseigne en B1 la date du jour qui devient ta date de ref.
    End If

  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
    Certainement une question stupide, dans la feuille "MdP" dois-je également stocker la date de la dernière modif ?

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Pour la question tu n'es pas obligé je t'ai donné un exemple pour éviter cela (bon j'ai inversé l'ordre de ma soustraction et j'aurais mieu fait d'utiliser datediff)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if DateDiff("d", "18/06/2009", Date) Mod 90 =0 then
    Tous les 90 jours a compté d'aujourdhui (tu met la date qui te convient) on demandera un nouveau mot de passe. ALors la première mise a jour en sera pas forcément a 90jours de la mise en place du mot de passe mais après cela sera tous les 90 jour

  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
    Bonjour à tous,

    Merci pour vos suggestions, je teste et je vous tiens informé.
    A+

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

Discussions similaires

  1. [PHP 5.1] Validation nouveau mot de passe
    Par Spire_ dans le forum Langage
    Réponses: 21
    Dernier message: 01/02/2012, 14h23
  2. [XL-2007] Modifier mot de passe fichier par VBA
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/01/2011, 17h58
  3. Mot de passe fenetre propriété vba
    Par lito74 dans le forum Access
    Réponses: 1
    Dernier message: 11/06/2007, 21h06
  4. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05
  5. Nouveau mot de passe refusé
    Par al1_24 dans le forum Windows Serveur
    Réponses: 21
    Dernier message: 12/09/2006, 13h39

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