Soru Escape İle Userformu Kapatma

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
204
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Sevgili Arkadaşlar herkese iyi günler dilerim.
Soru başlığı ile ilgili hem bu sitede hem de başka forumlarda konular var. Ancak uygulamak noktasında zorlandığım için yazmak zorunda kaldım. (Benzer konu ile meşgul etmek istemezdim. Aşağıda vermiş olduğum kod ile her bir sayfamın 1. satırında userformu açıyorum. 1. satır harici bir yere tıklayınca ise userform otomatik olarak kayboluyor. Aynı zaman da sayfalar sağa ve aşağıya çok yer kapladığı için birde renklendirme ekledim. Buna bir de ESC ile kapatma eklemek istiyorum ama bir türlü entegre edemedim. Mesele userform üzerine bir CommanButton ekledim Bunun içine de bulduğum kodları yazdım ama çalışmadı maalesef. Yardımcı olabilecek uzman arkadaşlara şimdiden tşk ederim.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 2 Then Exit Sub
If Target.Row = 1 Then
UserForm1.Show 0
Else
Unload UserForm1
End If
Cells.Interior.ColorIndex = xlColorIndexNone
ActiveCell.EntireColumn.Interior.ColorIndex = 19 'Sütun Rengi
ActiveCell.EntireRow.Interior.ColorIndex = 17 ' Satır Rengi
ActiveCell.Cells.Interior.ColorIndex = 4 ' Hücre Rengi
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,377
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Form üzerinde bulunan bütün kontrollerin hepsinin KeyDown olayına aşağıdaki gibi kod yazmalısınız.

Kod:
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode.Value = 27 Then Unload Me
End Sub
Buradaki mantık şu; form üzerinde hangi kontrol seçili ise KeyDown(Klavye tuşuna basma olayı) çalışsın ve içindeki kodu çalıştırsın.
Form üzerinde kaç tane kontol varsa hepsine bu kodu eklemeniz gerekir.
Örneğin TextBox nesneleri de varsa onlarında hepsine aşağıdaki gibi eklemelisiniz.

Kod:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode.Value = 27 Then Unload Me
End Sub
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
204
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Üstadım; bu kodları biliyordum ama bütün nesneler için tek tek yazılması gerektiğini öğrenmiş oldum. Sonuç aldım, çok tşk ederim
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,377
Excel Vers. ve Dili
2019 Türkçe
Rica ederim. İyi çalışmalar.
 
Üst