• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Formun Simge Durumunu küçültme

Katılım
4 Temmuz 2017
Mesajlar
21
Excel Vers. ve Dili
ingilizce 2013
Merhaba
Excel Vba'da bir form oluşturdum bir buton ile simge durumunu küçültebilme şansım var mıdır ?
İyi Çalışmalar ..
 
Merhaba
Excel Vba'da bir form oluşturdum bir buton ile simge durumunu küçültebilme şansım var mıdır ?
İyi Çalışmalar ..

Merhaba,

Userformu simge durumuna küçültme butonu için aşağıdaki kodu inceleyebilirsiniz.

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'
Private Sub UserForm_Activate()
Dim hWnd As Long, exLong As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
exLong = GetWindowLongA(hWnd, -16)
If (exLong And &H20000) = 0 Then
SetWindowLongA hWnd, -16, exLong Or &H20000
Me.Hide
Me.Show
End If
End Sub
 
simge durumuna geçme

Merhaba,

Userformu simge durumuna küçültme butonu için aşağıdaki kodu inceleyebilirsiniz.

Dostum olmadı tam olarak kendimi anlatamadım galiba
Bir buton var bastığımda exceli açacak ve userform simge durumuna inecek
küçülecek yardımcı olabilir misiniz ?
 
merhaba , minimize olayını butona ekleme ya da harici bir yerden calistirma kısmını bilmiyorum öyle bir örnek hic gormedim.

ama gerek de var mı tartışılır.

aşağıdaki kodu copyalayın user forma cift tiklayip acilan kod yazma yerine aynen yapistirip cıkın. excel sayfanızdan formunuzu acin minimize butonu eklendigini ve aktif oldugunu goreceksiniz.

iyi calismalar

Option Explicit

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 SetWindowPos Lib "user32" _
(ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" _
() As Long
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long


Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const GWL_EXSTYLE = (-20)
Private Const HWND_TOP = 0
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_SHOWWINDOW = &H40
Private Const WS_EX_APPWINDOW = &H40000
Private Const GWL_STYLE = (-16)
Private Const WS_MINIMIZEBOX = &H20000
Private Const SWP_FRAMECHANGED = &H20
Private Const WM_SETICON = &H80



Private Sub AddMinimiseButton()
Dim hWnd As Long
hWnd = GetActiveWindow
Call SetWindowLong(hWnd, GWL_STYLE, _
GetWindowLong(hWnd, GWL_STYLE) Or _
WS_MINIMIZEBOX)
Call SetWindowPos(hWnd, 0, 0, 0, 0, 0, _
SWP_FRAMECHANGED Or _
SWP_NOMOVE Or _
SWP_NOSIZE)
End Sub

Private Sub UserForm_Activate()
AddMinimiseButton
AppTasklist Me
End Sub

Private Sub AppTasklist(myForm)
Dim WStyle As Long
Dim Result As Long
Dim hWnd As Long

hWnd = FindWindow(vbNullString, myForm.Caption)
WStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
WStyle = WStyle Or WS_EX_APPWINDOW
Result = SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, _
SWP_NOMOVE Or _
SWP_NOSIZE Or _
SWP_NOACTIVATE Or _
SWP_HIDEWINDOW)
Result = SetWindowLong(hWnd, GWL_EXSTYLE, WStyle)
Result = SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, _
SWP_NOMOVE Or _
SWP_NOSIZE Or _
SWP_NOACTIVATE Or _
SWP_SHOWWINDOW)
End Sub
 
Hatadan dolayı çalışmıyor bu kısımda sıkıntı var

Bilgi için Teşekkürler ancak çalıştıramadım Tekrar bakarsanız sevinirim
İyi Çalışmalar

Private Sub AddMinimiseButton()
Dim hWnd As Long
hWnd = GetActiveWindow
Call SetWindowLong(hWnd, GWL_STYLE, _
GetWindowLong(hWnd, GWL_STYLE) Or _
WS_MINIMIZEBOX)
Call SetWindowPos(hWnd, 0, 0, 0, 0, 0, _
SWP_FRAMECHANGED Or _
SWP_NOMOVE Or _
SWP_NOSIZE)
End Sub
 
Son düzenleme:
merhaba cevap yazarken gereksiz alinti apmissiniz eski mesajinizi edit edip gereksiz kod tekrarlarini siler misiniz.

calisan bir ornegi asagidaki linkten indirip inceleyin lutfen... VBA penceresinde userforma cift tiklayip acilan pencereye kodlari yapistirin..

https://yadi.sk/d/mS_DimCN3KqtbS
 
Geri
Üst