• DİKKAT

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

İmlecin hücreden butona geçmesi sorunu

Katılım
9 Ağustos 2014
Mesajlar
85
Excel Vers. ve Dili
2013 türkçe
İmleç C4 te iken Enter tuşuna basınca E8 Devamında G14 gidiyor. Ancak G14 ten sonra tekrar Enter Tuşuna bastığımda Commandbutton1 seçilsin. Tekrar Entere bastığımda Commandbutton1 görevini yapsın (mesela yazdırma gibi), tekrar Entere tıkladığımda Commandbutton2 seçilsin yani aktif hale gelsin istiyorum.

Commandbutton1.Setfocus veya Commandbutton1.activate falan yazıp denedim olmadı.
 

Ekli dosyalar

Bunu yoğun çalışacağım bir dosyaya uyarlayacağımdan commandbuttonlarda mause kullananmak zamanımı aldığından yapmak istiyorum.
 
İlgili sayfanın Modülüne aşağıdaki kodları yapıştırırsanız. Eğer G14 hücresindeki değeri değiştirip, enter tuşuna basarsanız CommandButton1 a geçer.
CommandButton1 da KeyPress olayı ile enter tuşuna basarsanız
CommandButton2 ye geçer.
CommandButton2 de Enter tuşuna basıp çalıştıracağınız kodları KeyPress olayına ve "If KeyAscii = 13 Then" şartına bağlayın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$14" Then CommandButton1.Activate
End Sub
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız................
CommandButton2.Activate
End If
End Sub
 
Son düzenleme:
modülenin kod kısmına değil de sayfa1 in kod kısmına yapıştırınca çalıştı. Fakat Bazen G14 hücresine veri girmediğimde yani boş bıraktığımda bu commandbutton1 aktive olmaz mı? Yani veri gireyim veya girmeyeyim G14 ten sonra entere bastığımda command1 aktive olsun. Teşekkürler
 
Varsayılan olarak G14 hücresinde ENTER tuşuna basılınca G15 hücresine gider.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$14" Then CommandButton1.Activate
End Sub
kodunu
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$15" Then CommandButton1.Activate
End Sub
kodu ile değiştirirseniz istediğiniz olur diye düşünüyorum.
Not: Ancak bu kod G15 hücresinde işlem yapmanıza izin vermez. Bu hücreye girilir girilmez, CommandButton1 a gider.
 
Diğer bir alternatif, G14 hücresine girilecek metin değiştirilecekse açılan inputbox'dan değiştirip, enter tuşuna basın, değişmezse de enter tuşuna basın. CommandButton2 gidecektir.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$G$14" Then
 metin = InputBox("G14 hücresine girilecek metin", , Range("g14").Value)
  Range("g14").Value = metin
  CommandButton1.Activate
  End If
End Sub
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız................
CommandButton2.Activate
End If
End Sub
Private Sub CommandButton2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız................
End If
End Sub
 
Aşağıdaki Kodlar ile uyarlayarak yapmaya çalıştım. Çalışıyor elinize sağlık. Ancak commandbotton lar sırasıyla gidiyor. Bazen commandbotton2 veya commandbotton3 ten birini seçmem gerekiyor yani diğerini kullanmayacağım.
Mesela commandbotton2 active iken ben ENTER tuşunu kullanmayıp SAĞ YÖN TUŞU ile commandbotton3 ü aktive edip enter tuşuna bastığımda commandbotton3 ün işlevini yapmasını, kısacası commandbotton2 veya commandbotton3 yerine göre kullanmamak istiyorum. İmkanı var mıdır?




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$15" Then CommandButton1.Activate
If Target.Address = "$G$16" Then CommandButton2.Activate
If Target.Address = "$G$17" Then CommandButton3.Activate
If Target.Address = "$G$18" Then CommandButton4.Activate
End Sub
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız..........
CommandButton2.Activate
End If
End Sub
Private Sub CommandButton2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız..........
CommandButton3.Activate
End If
End Sub
Private Sub CommandButton3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
'Kodlarınız..........
CommandButton4.Activate
End If
End Sub
 

Ekli dosyalar

Eğer CommandButton1 de Enter veya SAĞ YÖN tuşuna basınca aynı kodu çalıştırıp CommandButton2 yada CommandButton3 geçecekse bu kod uzun ve iki kere yazmak istemiyorsanız. Bu yazdığınız Kodların en üstüne yazın.
Kod:
Sub Makro1()
'kodlarınız..................
End Sub
Private Sub CommandButton1_Keydown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Run "Makro1"
  CommandButton2.Activate
ElseIf KeyCode = 39 Then
Run "Makro1"
  CommandButton3.Activate
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$G$14" Then
 metin = InputBox("G14 hücresine girilecek metin", , Range("g14").Value)
  Range("g14").Value = metin
  CommandButton1.Activate
  End If
End Sub
 
Geri
Üst