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

Vue hybride

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

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    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

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    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 : 1035
Taille : 1,9 Ko

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

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    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

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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 ?

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    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 éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    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.

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

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    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 ?

+ 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