-->

اكسيل VBA | عمل يوزرفورم شفاف بطريقة احترافية | Transparent UserForm

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


 

درس جديد وكود جديد من سلسلة اكواد اكسيل vba 

لو انت عايز تاخد بيانات من شيت معين وعندك يوزرفورم ومغطى على الشيت كلة ومش عارف تنقل الداتا بتاعتك 

الحل عندنا فى الكود دة 

اكسيل VBA | عمل يوزرفورم شفاف بطريقة احترافية | Transparent UserForm

كود سهل وبسيط جدا الكود جاهز كل اللى عليك انك هتعمل كوبى للكود وتضعة فى حدث Genral لليوزرفورم وهتستدعى الكود بعد كدة بالطريقة اللى شرحناها فى الفيديو

 

Private Declare Function FindWindow _

    Lib "user32" Alias "FindWindowA" _

    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLong _

    Lib "user32" Alias "GetWindowLongA" _

    (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong _

    Lib "user32" Alias "SetWindowLongA" _

    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function SetLayeredWindowAttributes _

    Lib "user32" _

    (ByVal hWnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

 

Private Const GWL_EXSTYLE = (-20)

Private Const WS_EX_LAYERED = &H80000

Private Const LWA_ALPHA = &H2&

 

Public hWnd As Long

Sub MakeTransparent(frm As Object, TransparentValue As Integer)

 

Dim bytOpacity As Byte

 

'Control the opacity setting.

bytOpacity = TransparentValue

 

hWnd = FindWindow("ThunderDFrame", frm.Caption)

Call SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)

Call SetLayeredWindowAttributes(hWnd, 0, bytOpacity, LWA_ALPHA)

 

End Sub

 

 

 

 

 

 

Private Sub CommandButton1_Click()

MakeTransparent Me, 150

 

End Sub

 

Private Sub CommandButton2_Click()

MakeTransparent Me, 255

 

End Sub

 

Private Sub UserForm_Click()

 

End Sub

 

Private Sub UserForm_Initialize()

'MakeTransparent Me, 75

 

End Sub

 

 لتحميل ملف العمل من هنا


Emad ghazi
كاتب المقالة
كاتب ومحرر اخبار اعمل في موقع عالم الاوفيس .

جديد قسم : اكسل متقدم

  1. مشكورا لو بالامكان السؤال بخصوص اكسل vba "عايز اضيف سطر جديد بين سطرين موجودين بمعنى لو السطر رقم 5 مكتوب فيه بيانات وكذلك السطر رقم 6 اريد اضافة سطر بينهم بحيث ان الصف الجديد ياخذ الترتيب 6 والسطر رقم 6 ياخذ الترتيب رقم7 وهكذا يتم ترحيل باقى الاسطر بناء على عملية الاضافة الجديدة"

    ردحذف
  2. السلام عليكم ورحمة الله وبركاته احتاج معرفة كيف ايداء بعمود وسطر معين في اليوزر فورم وخاصة عملية التعديل والاضافة بحث لا يبداء من الخلية A1 )بعنى ان التعديل والاضافة فرضا تبدا من الخلية C6) وليس من A1.
    لكم جزيل شكري وامتناني

    ردحذف