Skip to main content

AccessTr.neT


Excel Vba User Form'da Keydown Kullanımı Hakkında.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
11
562

Excel Vba User Form'da Keydown Kullanımı Hakkında.

Çözüldü #1
Merhaba Access uygulamalarımda Form un Form_KeyDown yordamına yazdığım

Kod
Select Case KeyCode
    
Case vbKeyF10

        MsgBox "F10 tuşuna basıldığında gerçekleşmesi istenen eylem buraya yazılır"
    
End Select

kod kalıbıyla Fonksiyon tuşlarına Form Açma Form Kapama gibi eylemleri atayabiliyordum.

Mevcut Excel çalışmamda Ana_Sayfada userformun keydown yordamına yazdığım KAYDET butonunun olay yordamı olan  Kayıt ekleme kodları çalışmadı. F9 tuşuna bastığımda kayıt ekleme eyleminin gerçekleşmesi içi kodları nasıl revize etmem gerekir. Bilgi vermenizi Rica ederim.

Kod
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Select Case KeyCode
                Case vbKeyF9
      
                        If MsgBox("Girdiginiz veriler kaydedilecektir, Emin misiniz...?", vbExclamation + vbYesNo, "Firma Tanımlama Formu") = vbNo Then Exit Sub
            
                        Dim Firma, YeniFirma
            
                        Firma = TextBox_FirmaAdi.Value
            
                        YeniFirma = IIf(Application.CountIf(Columns(2), Firma) > 0, 1, 0)
            
                        If YeniFirma > 0 And TextBox_FirmaAdi.Value <> "" Then
            
                        If MsgBox("Aynı Adla Yapılmış Firma Kaydı Bulundu...Kayıt Yapılsın mı...?", vbExclamation + vbYesNo, "Firma Tanımlama Formu") = vbNo Then Exit Sub
            
                        End If
            
            
                                ' Application.ScreenUpdating = False
            
                        With ThisWorkbook.Worksheets("Ana_Sayfa")
                              'Alttaki kod eger A sütunu bossa son satir olarak 2 verir, 1 tane veri olsa dahi son satiri son dolunun bir alt satir no verir-----------------
                        If WorksheetFunction.CountA(.Range("A2:A" & Rows.Count)) = 0 Then
                              SonSatir = .Range("A" & Rows.Count).End(3).Row
                              ElseIf WorksheetFunction.CountA(.Range("A2:A" & Rows.Count)) > 0 Then
                              SonSatir = .Range("A" & Rows.Count).End(3).Row + 1
                        End If
          
                        .Cells(SonSatir, 1) = WorksheetFunction.Max(.Range("A2:A" & Rows.Count)) + 1
                        .Cells(SonSatir, 2) = TextBox_FirmaAdi.Value
                        .Cells(SonSatir, 3) = ComboBox_FirmaUnvani.Value
                        
                        .Cells(SonSatir, 4) = TextBox_YetkiliKisi.Value
                        .Cells(SonSatir, 5) = TextBox_Telefon.Value
                        .Cells(SonSatir, 6) = TextBox_Gsm.Value
                        .Cells(SonSatir, 7) = TextBox_Email.Value
                        .Cells(SonSatir, 8) = TextBox_Adres.Value
                        .Cells(SonSatir, 9) = TextBox_Aciklama.Value
                        
                        .Cells(SonSatir, 10) = ComboBox_Ilce.Value
                        .Cells(SonSatir, 11) = ComboBox_Sehir.Text
                        .Cells(SonSatir, 12) = ComboBox_Bolge.Value
                        .Cells(SonSatir, 13) = ComboBox_Temsilci.Value
                        .Cells(SonSatir, 14) = ComboBox_RouteDay.Value
                        .Cells(SonSatir, 15) = ComboBox_YetkiliBayilik.Value
                        
                        checkboxKontrol SonSatir
                        .Cells(SonSatir, 26) = TextBox_Tarih.Value
                        
                        .Cells(SonSatir, 27) = ComboBox_Kaynak.Value
                        .Cells(SonSatir, 28) = ComboBox_Ziyaret.Value
                        .Cells(SonSatir, 29) = ComboBox_Katalog.Value
                        
                    '    .Protect sifre
                        End With
                        Call checkboxKontrol(SonSatir)
                        Call temizle
                    
                        TextBox_Tarih = Format(Date, "dd.mm.yyyy")
                    
                        TextBox_Tarih.SetFocus
                    
                        With TextBox_Tarih
                            .SelStart = 0
                            .SelLength = .TextLength
                        End With
                        
                        'Application.ScreenUpdating = True
            
            End Select

End Sub
.rar WINPERAX - FORM.rar (Dosya Boyutu: 161,54 KB | İndirme Sayısı: 2)
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 20/04/2021, 21:05, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#2
Bu açtığım konuda userform da Access deki gibi Formun özellikler menüsünde tuş önizleme olayı maalesef bulunmadığından çözememiştim başka bir yol da yok gibi duruyor. Fakat veri girişleri yaparken seri bir şekilde mouse kullanmadan Access deki gibi Klavye kısa yolları tanımlamak Userform da mümkün mü. Yani Alt+ K tuşuna basarak kayıt etme işlevini yerine getirmem mümkün olurmu olursa nasıl yapılabilir. Teşekkürler.
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 26/04/2021, 17:54, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#3
Linkteki 3.mesajı uygulayın Img-grin
Alt tuşu ile oluyormuş.

https://www.vbforums.com/showthread.php?...rtcut-Keys

[Resim: do.php?img=10960]
Cevapla
#4
Teşekkürler Feraz Hocam. Bu Özelliği Formda sadece 2 butona tanımlayabildim.(Kaydet ve Kapat) Diğerlerine ne hikmetse atayamıyorum.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#5
(26/04/2021 22:16)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı: Teşekkürler Feraz Hocam. Bu Özelliği Formda sadece 2 butona tanımlayabildim.(Kaydet ve Kapat) Diğerlerine ne hikmetse atayamıyorum.
Rica edeim abey.Kapat için yanılmıyorsam özellklerden cancel vardı o tru ise false,false ise true yapın.
Cevapla
#6
Dosyanızda denedim hepsi çalışıyor bende abey.

Resimdeki gibi true yapın ve esc ye tıklayın kapanır.

[Resim: do.php?img=10961]
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da