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
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Kod:
Private Sub UserForm_KeyDown( _
                        ByVal KeyCode As MSForms.ReturnInteger, _
                        ByVal Shift As Integer)

    If KeyCode = 13 Then
        CommandButton1_Click
    End If
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teiekkür ederim
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sorum çözüme ulaşamadı yardılarınız için tekrar teşekkür ederim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
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.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
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
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkür ederim hocam.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Class Modul de yapılacak değişklik varmı?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sn anemos hocam başka hangi kodlarda değişiklik yapılacaktır.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
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.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
"Enter" Class modulde tanımlanan "btn" ve "opt" değişkenlerinde keydown olayı ile tetiklenecek nesnelerini atadık.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 
Üst