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 :

Remplacer texte par * dans inputbox mot de passe


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut Remplacer texte par * dans inputbox mot de passe
    Bonjour à tous,

    Dans ce code, le mot de passe est du texte se trouvant dans la cellule D58 de la feuille "Données", lorsque l'utilisateur le tape dans à l'ouverture du message, on voit clairement le mot frappé.
    Est-il possible de le remplacer au moment de la frappe par des *
    De plus, est-ce qu'il est possible également de remplacer le texte dans la cellule par des * tout en gardant sa valeur.
    Par exemple, je tape "TOTO", ça devient "****" mais la valeur reste toujours "TOTO"
    Merci par avance pour vos réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Cmb_Ecrit_Click()
    Dim REP As String
    REP = InputBox("MOT DE PASSE", "Accés au tableau")
    If REP = Sheets("Données").Range("D58").Value Then
    ActiveSheet.Unprotect
        Range("D58").Select
        With Selection.Font
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
        End With
    End If
    End Sub
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par Vba14 Voir le message
    Par exemple, je tape "TOTO", ça devient "****" mais la valeur reste toujours "TOTO"
    Au lieu d'utiliser InputBox tu te crées un formulaire (userform) avec une seule textbox et tu utilises le paramètre passwordchar prévu pour cela.
    et ensuite ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 And TextBox1.Value = Sheets("Données").Range("D58").Value Then
        '....
    End Sub
    Nom : Capture d'écran 2019-03-24 10.48.58.png
Affichages : 797
Taille : 1,9 Ko

  3. #3
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Bonjour anasecu,

    Oui c'est une idée. Je vais essayer ta méthode. Question : tu ne mets pas de bouton valider dans ton formulaire ?
    Par contre ça ne résout pas mon soucis de la cellule D58
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Quelle est la finalité/utilité d'afficher ce mot de passe dans une cellule ? Je n'en vois aucune.
    Pourquoi ne pas tout simplement mettre ce mot de passe dans une variable ?

    PS: et en y réfléchissant -->> pourquoi mémoriser ce mot de passe (y compris dans une variable) alors qu'il suffit d'une variable booléenne pour y mémoriser qu'il a été donné pour cette session ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour c'est dimanche on s'amuse un peu

    voici un vrai FAUX!!! input password rien n'existe avant rien n'existe apres
    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
    Sub test()
        MsgBox InputPassword(titre:="Entrez votre mot de passe")
    End Sub
    '
    '
    Function InputPassword(titre As String) As Variant
        Dim inpt, Btok, Btcancel, USF
        Dim j As Integer
        Set USF = ThisWorkbook.VBProject.VBComponents.Add(3)
        With USF: .Properties("Caption") = titre: .Properties("Width") = 150: .Properties("Height") = 70: End With
        'textbox pour input
        Set inpt = USF.Designer.Controls.Add("forms.TextBox.1", "inpt")
        With inpt: .Name = "inpt": .Left = 0: .Top = 0: .Width = USF.Properties("Width"): .Height = USF.Properties("insideheight") - 20: .PasswordChar = "*": End With
        'bouton OK
        Set Btok = USF.Designer.Controls.Add("forms.CommandButton.1", "Btok"): With Btok: .Name = "Btok": .Left = 54: .Top = 30: .Width = 48: .Height = 18: .Caption = "Ok": End With
        'bouton Annuler
        Set Btcancel = USF.Designer.Controls.Add("forms.CommandButton.1", "Btcancel"): With Btcancel: .Name = "Btcancel": .Left = 102: .Top = 30: .Width = 48: .Height = 18: .Caption = "Cancel": End With
        With USF.CodeModule
            j = .CountOfLines: .insertlines j + 1, "public response As variant" & vbCrLf & "'"
            j = .CountOfLines: .insertlines j + 1, "Private Sub BtOk_Click():response = inpt.Value:Me.hide:End Sub" & vbCrLf & "'" & vbCrLf
            j = .CountOfLines: .insertlines j + 1, "Private Sub Btcancel_Click(): response = False:Me.Hide: End Sub" & vbCrLf & "'" & vbCrLf
            j = .CountOfLines: .insertlines j + 1, "Private Sub UserForm_Activate(): response = False: End Sub" & vbCrLf & "'" & vbCrLf
            j = .CountOfLines: .insertlines j + 1, "Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer):Cancel = True: Me.Hide:End Sub"
        End With
        VBA.UserForms.Add (USF.Name)
        With UserForms(UserForms.Count - 1): .Show: InputPassword = .response: End With
        ThisWorkbook.VBProject.VBComponents.Remove (USF)    'destruction du userform on ne garde rien
    End Function
    c'est rigolo non ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    Quelle est la finalité/utilité d'afficher ce mot de passe dans une cellule ? Je n'en vois aucune.
    Pourquoi ne pas tout simplement mettre ce mot de passe dans une variable ?

    PS: et en y réfléchissant -->> pourquoi mémoriser ce mot de passe (y compris dans une variable) alors qu'il suffit d'une variable booléenne pour y mémoriser qu'il a été donné pour cette session ?
    Bonjour unparia,

    Le mot de passe est dans une cellule pour que l'administrateur puisse le changer quand bon lui semble.
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  7. #7
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Bonjour Patrick,

    Dans ton code, aucun mot de passe n'est tapé ???
    Je dois t'avouer que je n'y ait pas tout compris, je vois le principe.
    On créer un formulaire fantôme qui disparaît à la fin de chaque cession, il est de nouveau créé à une nouvelle ouverture, mais à quel moment préserve t-on le mot de passe ?
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    mais à quel moment préserve t-on le mot de passe
    On ne mémorise jamais le mot de passe lui-même. On mémorise ce que retourne une fonction de chiffrement "irréversible" à laquelle ce mot de passe est passé en paramètre.
    Soit M, le mot de passe et F la fonction de chiffrement.
    On mémorise le résultat R = F(M)
    Et lorsque l'utilisateur saisit un mot de passe M1, on en vérifie la validité V ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If F(M1) = R Then V = true
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Nom : demo3.gif
Affichages : 839
Taille : 566,1 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Si je comprends bien, le mot de passe est celui que tu frappes à l'instant "T"
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  11. #11
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    unparia,

    Ce que je souhaite, c'est que l'administrateur puisse changer de mot de passe, c'est pour cette raison que je le mets dans une cellule, de cette façon il peut y intervenir à tout moment.
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  12. #12
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Ce que tu dis là (et que nous avions bien compris) ne change absolument rien à ce que je t'ai exposé. Et ce : que le résultat R soit mémorisé dans une cellule, ou dans un fichier texte, ou dans la base de registre, etc ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  13. #13
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Je te prie de m'excuser mais je ne comprends pas ce que tu veux dire. Comment le mémoriser si il n'est pas noté quelque part ???
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  14. #14
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Comment le mémoriser si il n'est pas noté quelque part ???
    Ben ... En le "notant quelque part". Où et quand t'ai-je dit qu'il ne fallait pas le mémoriser. Je t'ai dit qu'il fallait mémoriser R (résultat d'une fonction de chiffrement F appelée en lui passant le paramètre M) et non M (relis-moi).
    Je te laisse maintenant là.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par Vba14 Voir le message
    Si je comprends bien, le mot de passe est celui que tu frappes à l'instant "T"
    ben c'est le but d'un inputbox non?
    si ca n'est pas ce que tu veux un inputbox ne t'est pas necessaire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    ce que unparia veut te dire c'est qu'au lieu de stocker "toto", il faudrait stocker une valeur qui lui est liée par un calcul.
    Tu ne stockes plus "toto" mais "C5wmJdwh7wX2rU3fR8XyA4N6oyw="par exemple.

    A chaque saisie du pw tu appliques la même fonction et tu retrouves le même hachage s'il est ok.
    L'utilisateur met à jour son pw lui-même, il est le seul à le connaitre. Toi-même tu n'as que le hashcode et tu ne peux pas faire l'opération inverse.
    Si c'est une appli sensible, il ne pourra pas dire que tout le monde peut retrouver son mot de passe dans le fichier et que ce n'est pas lui qui a fait la bourde.
    Tout dépend du niveau de sécurité que tu veux.

    Plusieurs phrases peuvent avoir le même hashcode mais ce n'est pas un problème. Aucune chance d'en trouver une par hasard.
    Des fonctions de hachage en vba : https://en.wikibooks.org/wiki/Visual...Hashing_in_VBA
    eric

  17. #17
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Merci pour toutes ces réponses, je fais au mieux et je reviens vers vous.
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/03/2016, 05h29
  2. [RegEx] Interdiction de caractères dans un mot de passe
    Par tarzanjane dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2007, 18h40
  3. [forms6i][logon] une '@' dans le mot de passe
    Par Garuda dans le forum Forms
    Réponses: 12
    Dernier message: 22/06/2007, 11h16
  4. Caracteres dans un mot de passe
    Par vtmt78 dans le forum Windows XP
    Réponses: 4
    Dernier message: 07/11/2006, 10h56
  5. [VBNET2005] InputBox + mot de passe
    Par PoZZyX dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/05/2006, 16h04

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