useform hakkında

Katılım
5 Aralık 2004
Mesajlar
130
Excel Vers. ve Dili
Excel 2003 Türkçe
merhaba arkadaşlar bu forma zaman ayırarak bize excel öğreten arkadaşlar bir sorunum var userform üsttündeki kapat işaretini nasıl kaybediyoruz
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
UserForm üzerinedeki CommandButton1 nesnesine tıkladığınızda, UserForm kapanır.

[vb:1:02d5ea0ec0]Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const MyVal = &H400
'
Private Sub CommandButton1_Click()
MsgBox "UserForm kapanacak !"
Unload Me
End Sub
'
Private Sub UserForm_Initialize()
Dim MyHandle
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
MyHandle = GetSystemMenu(hWnd, 0)
Call RemoveMenu(MyHandle, 6, MyVal)
End Sub
[/vb:1:02d5ea0ec0]
 
Katılım
5 Aralık 2004
Mesajlar
130
Excel Vers. ve Dili
Excel 2003 Türkçe
command butonla kapatacağız ama user formun üzerin deki (X) yani kapat işaretini nasıl kaybediyoruz bunu öğrenmek isteöiştim bu kodlarla denedim ama yapamadım
 
Katılım
2 Mart 2005
Mesajlar
225
Excel Vers. ve Dili
2003
2007
2010
Raider verdiği cevap tam sorunuzun cevabı. (X) kapat işareti kalkmasada etkisi alınıyor. commandbutonla kapatıyorsunuz. :?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Evet, İbrahim beyin dediği gibi o kodlarla UserForm'un başlığındaki (X) düğmesi pasif hale getirlmektedir.

Kodları nasıl denediğinizi buradan göremiyorum ama o kodlar, UserForm modulüne yerleştirilmelidir.

Benzer şekilde, deneme amaçlı başka bir UserForm oluşturun, üzerine CommandButton1 nesnesini yerleştirin ve bu kez de aşağıdakileri bu yeni UserForm'un modulüne yerleştirin. Bu kodlarla bu kez, UserForm'un başlık çubuğu kaybolacaktır.

[vb:1:2e63f94b0e]Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) 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 GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hwnd As Long) As Long

Private Const WS_BORDER = &H800000
Private Const GWL_STYLE = (-16)
'
Private Sub CommandButton1_Click()
Unload Me
End Sub
'
Private Sub UserForm_Activate()
Dim hwnd As Long, FormStyle As Long
hwnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not WS_BORDER
DrawMenuBar hwnd
End Sub
[/vb:1:2e63f94b0e]
 
Katılım
5 Aralık 2004
Mesajlar
130
Excel Vers. ve Dili
Excel 2003 Türkçe
teşekkür ederim raider bu sefer yapmayı başardım önceki kodları yanlış yere yazıyormuşum çok teşekkür ederim
 
Üst