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,
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,
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...
---------------
Regarde là, tu as plusieurs solutions
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
Partager