• DİKKAT

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

userformda entera basınca

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
userformda entera basınca
command buton 1 e bağlı kodlar çalışsın mümkünmüdür
 
Kod:
Private Sub UserForm_KeyDown( _
                        ByVal KeyCode As MSForms.ReturnInteger, _
                        ByVal Shift As Integer)

    If KeyCode = 13 Then
        CommandButton1_Click
    End If
End Sub
 
teiekkür ederim
 
Sn Anemos hocam sanırım bir sorun var userformda

10 adet Optionbutton,2 adet command buton var
userform escape basınca unloadme diyoruz.
ve xla dosyasında bulunuyor.
örnek dosya burada
http://www.excel.web.tr/showthread.php?t=40538

Kod:
Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
    If Selection.Count > 300 Then
        MsgBox "Fazla Alan Seçtiniz.", vbCritical + vbDefaultButton1 + vbOKOnly, "UYARI"
        Unload Me
        Exit Sub
    Else
        'MsgBox Selection.Count & " hücre seçili"
    End If
    
    OptionButton3.Value = True
End Sub

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then              '*Normal Tümce Düzeni
    Call NTC
    'MsgBox "Option1.Value"
ElseIf OptionButton2.Value = True Then          '*tümü küçük harf
    Call KHARF
    'MsgBox "Option2.Value"
ElseIf OptionButton3.Value = True Then          '*TÜMÜ BÜYÜK HARF
    Call BHARF
    'MsgBox "Option3.Value"
ElseIf OptionButton4.Value = True Then          '*Yalnızca İlk Harfler Büyük
    Call ILKHARFB
    'MsgBox "Option4.Value"
ElseIf OptionButton5.Value = True Then          '*bÜYÜK kÜÇÜK dÖNÜŞTÜR
    Call BKHArfD
    'MsgBox "Option5.Value"
ElseIf OptionButton6.Value = True Then          '*Ad SOYAD düzeni
    Call ASD
    'MsgBox "Option6.Value"
ElseIf OptionButton7.Value = True Then          '*Ad SOYAD düzeni
    Call SAD
    'MsgBox "Option6.Value"
ElseIf OptionButton8.Value = True Then          '*Ad SOYAD düzeni
    Call ASD_SAD
    'MsgBox "Option6.Value"
ElseIf OptionButton9.Value = True Then          '*Ad SOYAD düzeni
    Call SAD_ASD
    'MsgBox "Option6.Value"

ElseIf OptionButton10.Value = True Then          '*Tersten (netsreT) yaz
    Call TersY
    'MsgBox "Option8.Value"
End If
Unload Me
End Sub

Private Sub Label1_Click()
On Error Resume Next
ActiveWorkbook.FollowHyperlink address:="http://www.excel.web.tr", NewWindow:=True
End Sub



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

    If KeyCode = 13 Then
       CommandButton1_Click
    End If
End Sub
 
sorum çözüme ulaşamadı yardılarınız için tekrar teşekkür ederim.
 
Aktif kontrol değiştiği için form keydown devre dışı kalıyor. Her kontrole keydown yazmak yerine class modeli ile ortak olay yapılabilir.
Çalışmanıza uyarlayabileceğiniz bir örnek (class) hazırladım.
 
Sn hocam öncelikle alakanıza teşekkür ederim...
Yalnız şöyle bir problem var commandbuton1 'in ismini btnTAMAM diye değiştirdim. ve aşağıdaki kodlarda gerekli değişikliklikleri yaptım hata verdi sebebi nedir?

Ayrıca Option buttonlarda bir sıramı takip etmesi gerekiyor?
optAAA,optBBB,optCCC şeklinde isimlendirme yapmak istersek ne yapmalıyız?


CALASS MODULDE
Kod:
Public WithEvents opt As MSForms.OptionButton
Public WithEvents btn As MSForms.CommandButton

Private Sub btn_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then UserForm1.CommandButton1_Click
End Sub

Private Sub opt_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then UserForm1.CommandButton1_Click
End Sub


USERFORMDA
Kod:
Private opt(1 To 12) As New Enter
Private btn          As New Enter

Sub CommandButton1_Click()
    MsgBox "test"
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

Private Sub UserForm_Activate()
    For i = 1 To 12
        Set opt(i).opt = Me.Controls("OptionButton" & i)
    Next
        Set btn.btn = Me.CommandButton2
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Erase opt
    For i = 1 To 3
        Set opt(i).opt = Nothing
    Next
    Set btn = Nothing
End Sub
 
Merhaba,
"CommandButton1" gördüğünüz heryeri "btnTAMAM" ile değiştirin.(Click hariç)

Form activate kısmını aşağıdaki ile değiştirin.
Kod:
Private Sub UserForm_Activate()
    For Each c In Me.Controls
        If TypeName(c) = "OptionButton" Then
            i = i + 1
            Set opt(i).opt = Me.Controls(c.Name)
        End If
    Next
        Set btn.btn = Me.CommandButton2
End Sub
 
teşekkür ederim hocam.
 
Hocam Userform Acvtive ve QuaryCloseleri değiştirdim.

Kod:
Public WithEvents opt As MSForms.OptionButton
Public WithEvents btn As MSForms.CommandButton

Private Sub btn_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then UserForm1.CommandButton1_Click
End Sub

Private Sub opt_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then UserForm1.CommandButton1_Click
End Sub
Kod:
Sub CommandButton1_Click()
    MsgBox "test"
End Sub

yordamınıda command buton ismini değiştrdikten sonra aşağıdaki gibi değiştirince hata veriyor.
aşağıdaki gibi değiştridim.
Kod:
'Private Sub btnTAMAM_Click()
'    MsgBox "test"
'End Sub
 
Son düzenleme:
Class Modul de yapılacak değişklik varmı?
 
sn anemos hocam başka hangi kodlarda değişiklik yapılacaktır.
 
Class modul de dahil tüm modullerde,

CommandButton1 => btnTAMAM
CommandButton1_Click => btnTAMAM_Click

şeklinde değiştirin.

Önemli :
Form içindeki "Private Sub btnTAMAM_Click" de "Private" kısmını silin. Çünkü private class modulden çağırılamaz.
 
Teşekkürler Hocam
Sabahleyin işyerinde yaptım hata verdi şimdi çalıştı

Peki
Set btn.btn = Me.CommandButton2
Satırının işlevi nedir hocam.
 
"Enter" Class modulde tanımlanan "btn" ve "opt" değişkenlerinde keydown olayı ile tetiklenecek nesnelerini atadık.
 
onu anladım hocam CommandButton2 iptal (unload me) komutunu çalıştırıyor.
Tamam ı çalıştırması gerektiği için cmdTAMAM yazmak gerekmezmiyid yada neden iptal butonunu yazıyoruz
 
sn hocam birden fazla userform olduğu zaman her userform için enter class modülünü çoğalatacakmıyız işe yaramıyor birden fazla userform olduğundaç

Şöyle yapabilirmiyiz Enterla(Form, buton) şeklinde kullanım mümkünmüdür?
 
Hocam Aynı kitaptaki tüm userformlarda entera basınca cmdTAMAM click olayının çalışması için kodları nasıl değiştirmek gerekir.
 
Hocam Aynı kitaptaki tüm userformlarda entera basınca cmdTAMAM click olayının çalışması için kodları nasıl değiştirmek gerekir.
 
Hocam Aynı kitaptaki tüm userformlarda entera basınca o userform üzerindeki cmdTAMAM click olayının çalışması için kodları nasıl değiştirmek gerekir.
 
Geri
Üst