• DİKKAT

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

Userformu ESC Tuşu İle Kapatmak

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,

Userform'u ESC tuşu ile kapamayı beceremedim. Yardımcı olabilir misiniz?

İyi çalışmalar.
 
Selam,

Userform'u ESC tuşu ile kapamayı beceremedim. Yardımcı olabilir misiniz?

İyi çalışmalar.
Merhaba kullandığım bir kod umarım işinize yarar
Kod:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 27 Then Unload Me
End Sub
 
Selam,

Userform'u ESC tuşu ile kapamayı beceremedim. Yardımcı olabilir misiniz?

İyi çalışmalar.

merhaba
userform'un kod bölümüne
Kod:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Cancel = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = True
End Sub
bu kod'u yapıştırınız.
 
Merhaba İhsan bey
Siz mesajdan isteğinizi kaldırmışsınız ama ben yinede örnek dosyamı ekleyeyim.
 

Ekli dosyalar

Merhaba kullandığım bir kod umarım işinize yarar
Kod:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 27 Then Unload Me
End Sub

Selam,
Çok teşekkür ederim. Çok işimi yaradı. Çok sağolun.
İyi çalışmalar.
 
merhaba
userform'un kod bölümüne
Kod:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Cancel = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = True
End Sub
bu kod'u yapıştırınız.

Selam,
Çok teşekkür ederim. Ancak, Userformda CommandButton1 yok ise bir işe yaramıyor.
İyi çalışmalar.
 
Selam,
Çok teşekkür ederim. Ancak, Userformda CommandButton1 yok ise bir işe yaramıyor.
İyi çalışmalar.

rica ederim
doğrudur çalışmaz ama gelişebilir. birde ben userform'un içini boş olacağını tahmin etmedim. ondan kaynaklandı sanırım
kolay gelsin :mutlu:
 
rica ederim
doğrudur çalışmaz ama gelişebilir. birde ben userform'un içini boş olacağını tahmin etmedim. ondan kaynaklandı sanırım
kolay gelsin :mutlu:
Selam,
Alternatif her çözüme açığımdır. Şu an işe yaramıyor görünse bile, bazı durumlarda sizin önerdiğiniz gibi dolaylı kodlar çok işe yarıyor.
Mesela cancel olayınından biraz bahsederseniz, takip eden arkadaşalr için de faydalı olur kanaatindeyim.

İyi çalışmalar.
 
Selam,

aşağıdaki kod ile Userformu kapatamıyorum. Boş Userformu kapatıyor. Ancak çalıştığım userform'u kapatamıyorum. Kodlar neden çalışmıyor?

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me
End Sub
 
Sayın Ergün_Güler,

Userformunuzun QueryClose kodlarında,
Cancel = 1 veya Cancel = True yazıyorsa ESC tuşu işe yaramayacaktır.

Cancel, userformun köşesindeki çarpıdan çıkışı engellemek için kullanılır genelde.
Farklı kullanımları da mevcuttur tabi ki. Örneğin;

Textbox'lara sadece RAKAM girilmesi için aşağıdaki kodu kullanabilirsiniz.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Exit Sub
If Not IsNumeric(TextBox1) Then
MsgBox "Rakam Girmek Zorunludur.", , " HATALI GİRİŞ"
TextBox1 = ""
Cancel = 1
Exit Sub
End If
End Sub

Textbox'a rakam girilmemiş ise imleci aynı Textbox'ta tutmak için kullanılabilir.
 
Sayın Ergün_Güler,

Userformunuzun QueryClose kodlarında,
Cancel = 1 veya Cancel = True yazıyorsa ESC tuşu işe yaramayacaktır.

Cancel, userformun köşesindeki çarpıdan çıkışı engellemek için kullanılır genelde.
Farklı kullanımları da mevcuttur tabi ki. Örneğin;

Textbox'lara sadece RAKAM girilmesi için aşağıdaki kodu kullanabilirsiniz.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Exit Sub
If Not IsNumeric(TextBox1) Then
MsgBox "Rakam Girmek Zorunludur.", , " HATALI GİRİŞ"
TextBox1 = ""
Cancel = 1
Exit Sub
End If
End Sub

Textbox'a rakam girilmemiş ise imleci aynı Textbox'ta tutmak için kullanılabilir.
Selam,
Sayın Hocam öncelikle açıklamalarınız için çok teşekkür ederim. Tam olarak anlayamadım ama,
Kod:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

End Sub
şeklinde herhangi bir kodum bulunmuyor.
boş bir userformda bir önceki mesajımda verdiğim kodlar ile ESC tuşuyla Formu kapatabiliyorum. Combobox, Commandbutton, Listview v.b. nesnelerin olduğu userformu kapatamıyorum. Ne yapmam gerekir tam olarak anlayamadım.
Yeniden yardımcı olabilirseniz çok sevinirim.
İyi çalışmalar.
 
Selamlar,

Ergün bey aşağıdaki kod dediğiniz gibi boş bir userformda çalışacaktır. Siz her durumda çalışan bir kod istiyorsunuz. Bu durumda kırmızı bölümü formunuzun üstündeki her nesnenin KEYDOWN olayına yazmalısınız. Bu şekilde yaparsanız form üzerinde o an hagi nesne aktif olursa olsun ESC tuşuna bastığınızda formunuz kapanacaktır.

Kod:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     [COLOR=red]If KeyCode = 27 Then Unload Me[/COLOR]
End Sub
 
Selamlar,

Ergün bey aşağıdaki kod dediğiniz gibi boş bir userformda çalışacaktır. Siz her durumda çalışan bir kod istiyorsunuz. Bu durumda kırmızı bölümü formunuzun üstündeki her nesnenin KEYDOWN olayına yazmalısınız. Bu şekilde yaparsanız form üzerinde o an hagi nesne aktif olursa olsun ESC tuşuna bastığınızda formunuz kapanacaktır.

Kod:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     [COLOR=red]If KeyCode = 27 Then Unload Me[/COLOR]
End Sub
Selam Hocam çok teşekkür ederim. Açıklamalarınız çok mantıklı oldu.

Userform üzerindeki Textbox, combobox v.b. tüm nesnelerin KEYDOWN olayına kodları yazmak yerine Class özelliğini kullanarak ortak kod yazılabiliyor sanırım. Ancak ben Class ile henüz nasıl yazılabileceğini bilmiyorum. Bu konuda bana yardımcı olabilir misiniz?
 
Selamlar,

İhsan beyin önerdiği kodlarıda kullanabilirsiniz.

Formunuza bir adet CommanButton ekleyin. Aşağıdaki kodlarıda formunuzun kod bölümüne uyarlayın. Kırmızı renkli bölümler yeni eklediğiniz butonun index numarısına göre değiştirin. Mesela yeni eklediğiniz butonun adı CommandButton25 ise sizde kırmızı bölümleri 25 olarak değiştirin. Bu durumda ESC tuşuna basarak formu kapatabilirsiniz.

Ekteki örneğide inceleyebilirsiniz. Eklemiş olduğum dosyada CommanButtonu görebilmek için kod editöründen formu seçip genişliğini mouse ile arttırın. Bu şekilde gizlenmiş bir butonla işlemi kolaylıkla yapabilirsiniz.

Kod:
Private Sub CommandButton[COLOR=red]1[/COLOR]_Click()
    Unload Me
End Sub
 
Private Sub UserForm_Initialize()
    CommandButton[COLOR=red]1[/COLOR].Cancel = True
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode <> 1 Then Cancel = True
End Sub
 

Ekli dosyalar

Selamlar,

İhsan beyin önerdiği kodlarıda kullanabilirsiniz.

Formunuza bir adet CommanButton ekleyin. Aşağıdaki kodlarıda formunuzun kod bölümüne uyarlayın. Kırmızı renkli bölümler yeni eklediğiniz butonun index numarısına göre değiştirin. Mesela yeni eklediğiniz butonun adı CommandButton25 ise sizde kırmızı bölümleri 25 olarak değiştirin. Bu durumda ESC tuşuna basarak formu kapatabilirsiniz.

Ekteki örneğide inceleyebilirsiniz. Eklemiş olduğum dosyada CommanButtonu görebilmek için kod editöründen formu seçip genişliğini mouse ile arttırın. Bu şekilde gizlenmiş bir butonla işlemi kolaylıkla yapabilirsiniz.

Kod:
Private Sub CommandButton[COLOR=red]1[/COLOR]_Click()
    Unload Me
End Sub
 
Private Sub UserForm_Initialize()
    CommandButton[COLOR=red]1[/COLOR].Cancel = True
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode <> 1 Then Cancel = True
End Sub

Hocam Size ve İhsan Bey'e çok teşekkür ederim. Ancak kodlar nasıl çalışıyor pek anlayamadım. Birde Userform sağ-köşe^den neden kapatılamadı?

İyi çalışmalar.
 
Selamlar,

İlk olarak formunuzu köşedeki çarpıdan kapatmak için aşağıdaki kodu silmelisiniz.

Kod:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode <> 1 Then Cancel = True
End Sub

Ayrıca ESC tuşu ile formu kapatmak için aşağıdaki başlıklarıda inceleyebilirsiniz.

Userformun ESC tuşu ile kapatılması
Userformdan esc ile çıkabilmeye izin vermek
Userformdan esc ile çıkış kodu ve özelliği

Selam,
Çok teşekkür ederim.
İyi çalışmalar.
 
Geri
Üst