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 :

[VBA-E] Inputbox avec saisie masquée


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut [VBA-E] Inputbox avec saisie masquée
    Bonjour,

    J'aimerais savoir s'il est possible de créer une boite de dialogue qui masque la saisie.
    Pour la saisie d'un mot de passe en l'occurence, donc en remplaçant la saisie par des étoiles par exemple...

    Merci beaucoup,

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Les inputbox standard ne permettent pas cela.

    Par contre, tu peux créer toi-même une boite de dialogue et utiliser au sein de celle-ci un textbox pour lequel tu précises la propriété PASSWORDCHAR.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde , tu as plusieurs solutions

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut
    Merci beaucoup !

  5. #5
    Membre averti
    Femme Profil pro
    Ingéniérie financière (orienté VBA Excel donc)
    Inscrit en
    Janvier 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Kazakhstan

    Informations professionnelles :
    Activité : Ingéniérie financière (orienté VBA Excel donc)

    Informations forums :
    Inscription : Janvier 2016
    Messages : 37
    Par défaut
    Citation Envoyé par amalane Voir le message
    Bonjour,

    J'aimerais savoir s'il est possible de créer une boite de dialogue qui masque la saisie.
    Pour la saisie d'un mot de passe en l'occurence, donc en remplaçant la saisie par des étoiles par exemple...

    Merci beaucoup,
    Dommage que ce ne soit pas natif,

    Merci pour les solutions proposées !!

    Que pensez-vous de ma macro ?
    Je pense qu'elle doit passer à côté de plusieurs bonnes pratiques (dont de la réduction de code similaire),
    En tout cas elle semble marcher sur mes tests manuels ...

    Mot de passe en dur dans le code (pas top) :

    Code VBA : 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
    Public Sub ProtectionFeuille()
     
    ' Enregistre l'etat des feuilles (visibles ou pas), et les cache toutes
    ' Demande un mot de passe
    ' s'il est bon donne acces au classeur
    ' sinon referme le classeur
    ' nb : dans les deux cas remet les feuilles dans leur etat initial
    ' nb : dans les deux cas, la feuille active demeure celle active au debut
    ' nb : mot de passe rentre en dur dans le code
     
     
    'declaration variables
    Dim mdp As String
    Dim realMdp As String
    Dim n As Integer
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim i As Integer
     
    Set wb = ThisWorkbook
     
    'recuperation feuille active
    Set ws1 = ActiveSheet
     
    ' recuperation du nombre de feuilles
    n = wb.Worksheets.count
     
    ' declaration d'un tableau à 2 dimensions (0, n-1), (0,1)
    Dim TablWs() As Variant
    ReDim TablWs(1 To n, 1 To 2)
     
    ' recuperation de l etat avant fermeture de toutes les feuilles
    For i = 1 To n
         TablWs(i, 1) = wb.Worksheets(i).Name
         TablWs(i, 2) = wb.Worksheets(i).Visible
         ' on cache la feuille sauf la derniere pour ne pas bugguer
         If i <> n Then wb.Worksheets(i).Visible = False
    Next i
     
    ' choix mdp
    mdp = Application.InputBox("Mot de passe ?", Title:="MDP", Default:="...")
    realMdp = "tonMotDePasse"
     
    'divergence des cas
    If mdp <> realMdp Then
        MsgBox "Wrong password : you failed"
     
        ' DUPLICATA ... boucle pour reouvrir les feuilles
        For i = 1 To n
            If TablWs(i, 2) = 0 Then
                ' on rouvre la feuille
                wb.Worksheets(i).Visible = -1
            End If
        Next i
     
        ' fermeture classeur
        With Application
            'desactivation des messages d'alerte
            .DisplayAlerts = False
                'reactivation feuille de depart
                ws1.Activate
                'Fermeture du classeur si pas l'autorisation
                ThisWorkbook.Close
            'reactivation des messages d'alerte
            .DisplayAlerts = True
        End With
    Else
     
        ' boucle pour reouvrir les feuilles
        For i = 1 To n - 1
            If TablWs(i, 2) = -1 Then
                ' on rouvre la feuille
                wb.Worksheets(i).Visible = -1
            End If
        Next i
    End If
     
    'reactivation feuille de depart
    ws1.Activate
     
    End Sub

    Nb : prêt à l'emploi,

    Suffit d'y faire appel ...
    Ou de la mettre en macro evenementielle sur l'ouverture du workbook.

    Je joins un fichier test.
    Le mot de passe à entrer est : motdepasse

    Bien à vous !
    Si ça peut en aider, n'hésitez pas à le récupérer pour vous (en me citant ce serait sympa mais peace pas d'inquiétudes )

    Nb : wooooopsie ... Le sujet datait -_-
    Désolé pour l'archive remontée,
    J'ai ouvert plusieurs pages et croyais que c'était un sujet de 2018, my bad
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [VBA] Comparer une valeur à un masque de saisie
    Par spaiku dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/08/2008, 12h46
  2. Réponses: 0
    Dernier message: 28/10/2007, 20h11
  3. Controler une saisie avec un masque
    Par marinew dans le forum JSF
    Réponses: 3
    Dernier message: 24/10/2007, 15h39
  4. [Débutant] =Maintenant() avec un masque de saisie date
    Par 512banque dans le forum Access
    Réponses: 4
    Dernier message: 05/07/2006, 16h38
  5. Pb avec un masque de saisie
    Par coco21 dans le forum Access
    Réponses: 1
    Dernier message: 01/06/2006, 14h36

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