اذهب الي المحتوي
أوفيسنا

تعديل كود password


Osama-2020
إذهب إلى أفضل إجابة Solved by حسونة حسين,

الردود الموصى بها

اخوانى الافاضل

السلام عليكم ورحمه الله وبركاته .....

واسعد الله اوقاتكم بكل خير....

ارجو من سيادتكم المساعده فى تعديل الكود الموضح ليتم اظهار الباسورد على شكل نجوم (***) ولا يظهر الرقم السرى للمستخدم بما لايوثر على فاعليه الكود

جزاكم الله خيرا كثيراًً.......

رابط الملف المرفق

Private Sub CommandButton4_Click()
Dim x
x = InputBox("Please Enter Your Password")
If x = "123" Then
Sheets("Renewal").Activate
Else: Exit Sub
End If
End Sub

 

رابط هذا التعليق
شارك

@Osama-2020

سهل  الامور  على  نفسك  واستخدم  اليوزرفورم  من  خلال  خصائص  التيكست بوكس   ستجد  مرادك .

  • Like 1
رابط هذا التعليق
شارك

معذرة استاذتى الافاضل

لازلت مبتدأ امام هذه الشروحات الممتعه.... ولم تسعفنى اقتراحتكم الرائعه فى الوصول للحل ......

ارجو المساعده فى التعديل على الكود نفسه ان امكن ... وهذا سيكون اسهل لى.... 

لكم جزيل التقدير والشكر

رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله تعالى وبركاته

تفضل اخي جرب  مع مثال بسيط لطلبك

Sub Unlock1()
Dim inpu1 As String, inpu2 As String
'  يمكنك وضع الباسوورد في اي شيت من اختيارك مع تحديد اسمه . وخلية الرقم السري داخل الكود كما في المثال
'(A1) وضع رقم الباسوورد في الخلية
inpu2 = Sheets("data").Range("A1").Value
inpu1 = Application.InputBox("Please Enter Your Password")
If inpu1 = inpu2 Then Sheets("Renewal").Activate

End Sub
'''''''''''''''''''''''''''''''''''''''''''''''
Sub Unlock2()
Dim inpu1 As String, inpu2 As String

'وضع الباسوورد في شيت مخفي
'(b10) وضع الرقم السري في الخلية

inpu2 = Sheets("sheet2").Range("b10").Value
inpu1 = Application.InputBox("Please Enter Your Password")
If inpu1 = inpu2 Then Sheets("Renewal").Activate

End Sub

 

Osama-Test.xlsm

رابط هذا التعليق
شارك

جزيل الشكر لك اخى @Mohamed Hicham

لازل ال password يظهر كما هو على شكل ارقام

ارغب فى جعله يظهر على شكل ***** بدلا من الارقام

مع استخدام نفس الكود المرفق فى الملف وهو كالتالى:

Private Sub CommandButton1_Click()
Dim x
x = InputBox("Please Enter Your Password")
If x = "123" Then
Sheets("Data").Activate
Else: Exit Sub
End If
End Sub

رابط هذا التعليق
شارك

  • أفضل إجابة

جرب هذا الكود اخى

Option Explicit

'////////////////////////////////////////////////////////////////////
'Password masked inputbox
'Allows you to hide characters entered in a VBA Inputbox.
'
'Code written by Daniel Klann
'March 2003
'https://stackoverflow.com/questions/28189864/excel-vba-input-box
'////////////////////////////////////////////////////////////////////
'API functions to be used
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
'Constants to be used in our API functions
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 As String, lngBuffer As Long
    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    'A window has been activated
RetVal = GetClassName(wParam, strClassName, lngBuffer)
        If Left$(strClassName, RetVal) = "#32770" Then  'Class name of the Inputbox
            'This changes the edit control so that it display the password character *.
            'You can change the Asc("*") as you please.
            SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
        End If

    End If
    'This line will ensure that any other hooks that may be in place are
    'called correctly.
    CallNextHookEx hHook, lngCode, wParam, lParam
End Function

Function InputBoxDK(Prompt, Title) As String
    Dim lngModHwnd As Long, lngThreadID As Long
    lngThreadID = GetCurrentThreadId
    lngModHwnd = GetModuleHandle(vbNullString)
    hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)
    InputBoxDK = InputBox(Prompt, Title)
    UnhookWindowsHookEx hHook
End Function

ولكن من الاسهل كما قال لك اخى @عبدالفتاح في بي اكسيل

استخدم userform

 قم بإنشاء userform

يحتوي على مربع نص

وزر

في خصائص مربع النص ، أدخل * في مربع

PasswordChar Box

كما بالصورة

show.jpg.d596992fb02311d6e005f11ae00c9fb2.jpg

وفي كود الزر ضع الكود الخاص بك في اول الموضوع

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information