Bonjour est il possible de masquer le texte dans un inputbox sans userform ? avec des ***** par exemple
Bonjour est il possible de masquer le texte dans un inputbox sans userform ? avec des ***** par exemple
A ma connaissance, je n'ai vu ça que dans la propriété "input mask" pour un mot de passe dans Access; mais les autres membres auront peut-être des idées.
Bonjour patbalotelli,
Oui c'est possible mais pas natif dans la méthode InputBox fournis avec le VBA Excel.
Par contre on peut le créer mais c'est plutôt compliqué.
J'avais déjà fait ce type de recherche et avais trouvé un module à intégrer à mon projet pour utiliser un InputBox personnalisé.
Voilà le module écrit par Daniel Klann :
Je ne ferais pas l'affront de t'expliquer le fonctionnement des API et des fonctions étant donné qu'elles ne sont pas de moi.
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
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 Option Explicit Private Declare Function CallNextHookEx Lib "user32" _ (ByVal hHook As Long, _ ByVal ncode As Long, _ ByVal wParam As Long, _ lParam As Any) _ As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _ (ByVal lpModuleName As String) _ As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, _ ByVal lpfn As Long, _ ByVal hmod As Long, _ ByVal dwThreadId As Long) _ As Long Private Declare Function UnhookWindowsHookEx Lib "user32" _ (ByVal hHook As Long) _ As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, _ ByVal nIDDlgItem As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) _ As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _ (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) _ As Long Private Declare Function GetCurrentThreadId Lib "kernel32" _ () _ As Long Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 Private hHook As Long Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim RetVal Dim strClassName$, lngBuffer& If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String Dim lngModHwnd&, lngThreadID& lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook End Function
Tout ce que je peux dire c'est que le module est basé sur l'utilisation des Hooks. Même si j'en comprend vaguement le fonctionnement ce n'est aujourd'hui pas encore à ma portée.
EDIT :
Voila déjà une source DVP qui peut être utile : Principe du Hook et utilisation d'un Hook souris
Antony
Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
Gustave Parking
Si le post vous est utile un petit fait toujours plaisir et pensez à passer en
Et surtout -> Balise CODE
merci antho ca va bcp m'aider
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager