XL 2016 Remplacer des caractères alphanumériques par des astérisques

ReneDav14000

XLDnaute Occasionnel
Bonjour à tous,
Sauriez-vous comment on peut remplacer des caractères alphanumériques d'un cellule Excel par des astérisques au moment de la frappe.
Je fais cette demande afin de dissimuler le mot de passe tapé dans une cellule. Je sais le faire dans un formulaire en Vba mais pas dans une cellule Excel, si cela est faisable !!
Merci par avance pour votre aide
 
Solution
Bonjour à tous

Voici une méthode
Demo_Password.gif

ReneDav14000

XLDnaute Occasionnel
J'ai installé des TextBox (ActiveX) à l'endroit de mes cellules.
J'ai modifié le code de vérification du Nom et du mot de passe en conséquence mais j'ai un message d'erreur sur la ligne 19 "VérifMdP(USER, MdP) = False Then" - Erreur de compilation - Type d'argument ByfRef incompatible.
USER est le Nom (Name dans les propriétés) de la TextBox2 = Nom de l'agent
MdP est le Nom (Idem) de la TextBox1 = Mot de Passe
Pouvez-vous m'apporter votre aide s'il vous plait car je suis perdu.
Merci par avance

VB:
Option ExplicitIf 

Sub ENTRER()
Dim USER As Object, MdP As Object

USER = Sheets("Accueil").TextBox2
MdP = Sheets("Accueil").TextBox1

If USER = "" Then
    MsgBox "La saisie du Nom de l'agent est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If MdP = "" Then
    MsgBox " La saisie du Mot de Passe est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If VérifMdP(USER, MdP) = False Then
    MsgBox "Erreur de Mot de Passe et/ou d'identifiant - Merci de recommncer.", vbInformation
    USER = ""
    MdP = ""
    USER.Select
    Exit Sub
End If

AfficheFeuilles USER
USER = ""
MdP = ""
USER.Select

End Sub
 

p56

XLDnaute Occasionnel
Sans voir le reste du code il est difficile de répondre précisément.
Ceci dit, il est toujours payant de coder le plus explicitement possible.
Si USER et Mdp sont des objects, il est toujours mieux de préciser la propriété, soit un truc du genre :
if USER.value="" then ... ou if USER.text="" then ...
Ensuite si la function Vérif attends des valeurs texte comme arguments, la syntaxe : If VérifMdP(USER.value, MdP.value) ... sera correcte ou If VérifMdP(USER.text, MdP.text)
(au passage il est mieux d'éviter les accents dans le code : function Verif est mieux que function Vérif)
 

ReneDav14000

XLDnaute Occasionnel
Voici la fonction et autre code en corrélation avec le code du bouton de validation.
J'ai refait le code "ENTRER" mais ça ne fonctionne toujours pas.
VB:
Sub ENTRER()
Dim USER As String, MdP As String

USER = Sheets("Accueil").TextBox2.Value
MdP = Sheets("Accueil").TextBox1.Value

If USER = "" Then
    MsgBox "La saisie du Nom de l'agent est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If MdP = "" Then
    MsgBox " La saisie du Mot de Passe est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If VerifMdP(USER, MdP) = False Then
    MsgBox "Erreur de Mot de Passe et/ou d'identifiant - Merci de recommncer.", vbInformation
    USER = "" "- [B][U]Ici message d'erreur - Qualificateur incorrect[/U][/B]
    MdP = ""
    USER.Select
    Exit Sub
End If

AfficheFeuilles USER.Value
USER = ""
MdP = ""
USER.Select

End Sub

Fonction liée au code ci-dessus

Code:
Option Explicit
'Cette fonction permet de savoir si l'utilisateur existe ou pas.
'Si le mot de passe correspond à l'utilisateur
'Comparaison des 2 qui renvoie Vrai ou Faux (déclaration en Boolean)
'L'utilisateur et le mot de passe en String sont des données renvoyées lors du clic sur le bouton

Function VerifMdP(Utilisateur As String, MdP As String) As Boolean
Dim UtilTrouve As Range

    VerifMdP = False 'par défaut renvoie Faux
   
        With Sheets("Accès") 'dans la feuille Accès
        'On cherche dans la colonne A le Nom de l'utilisateur saisi
       
            Set UtilTrouve = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole)
           
                If UtilTrouve Is Nothing Then 'Si l'utilisateur n'est pas trouvé
                VerifMdP = False 'La fonction renvoie Faux
                Else
                'Si l'utilisateur est trouvé, on vérifie que le mot de passe saisi colonne B correspond à son Nom
                If UtilTrouve.Offset(0, 1) <> MdP Then
                VerifMdP = False 'Faux
                Else
                VerifMdP = True '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("Accès") 'Dans la feuille Accès
     'On va boucler de la colonne 4 à la dernière colonne, alors on stocke le n° de la dernière
        Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
       
    'On cherche dans la colonne A le Nom de l'agent saisi et on stocke son n° de ligne
        Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row
        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 qui lui est autorisée
                BoutonActif
            Else
                Sheets(.Cells(1, i).Value).Visible = xlSheetVeryHidden 'Sinon la feuille reste masquée
                BoutonInactif
            End If
        Next i
    End With
   
    Sheets("Accueil").Visible = True
    Sheets("Accueil").Activate
End Sub
'--------------------------------'
Sub BoutonInactif()
'Boutons visibles mais pas actifs
With Sheets("Accueil")
    .BoutEmployé.Enabled = False
    .BoutEtiq.Enabled = False
    .BoutScanne.Enabled = False
    .BoutStat.Enabled = False
    .BoutTteEtiq.Enabled = False
End With

With Sheets("BDD")
    .BoutCopierColler.Enabled = False
    .BoutAjout.Enabled = False
End With
End Sub
'--------------------------------------------'
Sub BoutonActif()
'Boutons visibles et actifs
With Sheets("Accueil")
    .BoutEmployé.Enabled = True
    .BoutEtiq.Enabled = True
    .BoutScanne.Enabled = True
    .BoutStat.Enabled = True
    .BoutTteEtiq.Enabled = True
End With

With Sheets("BDD")
    .BoutCopierColler.Enabled = True
    .BoutAjout.Enabled = True
End With

End Sub
 

ReneDav14000

XLDnaute Occasionnel
J'ai réglé le problème, tout fonctionne correctement.
J'ai mis la Sub ENTRER dans le module de la Feuille "Accueil".
J'aurai dû y penser plus tôt, quelle perte de temps. Désolé.
Merci pour votre aide.

Voici le code
Code:
Sub ENTRER()

If Me.USER.Value = "" Then
    MsgBox "La saisie du Nom de l'agent est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If Me.MdP.Value = "" Then
    MsgBox " La saisie du Mot de Passe est obligatoire - Merci de recommencer.", vbInformation
    Exit Sub
End If

If VerifMdP(Me.USER.Value, Me.MdP.Value) = False Then
    MsgBox "Erreur de Mot de Passe et/ou d'identifiant - Merci de recommencer.", vbInformation
    Me.USER.Value = ""
    Me.MdP.Value = ""
    Me.USER.Select
    Exit Sub
End If

AfficheFeuilles Me.USER.Value
USER.Value = ""
MdP.Value = ""
Me.USER.Select

End Sub
 

Discussions similaires

Réponses
26
Affichages
403

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87