[ tab ] ile ilerken sıradaki bir textbox u atlama

Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
İyi akşamlar,

bir userfom um var ve üzerinde frame' ler onların içinde de combobox, textbox ve checkbox lar var. Bu userform un üzerinde is bir de tarih textbox u mevcut

bu tarih textbox' una tarihi "dd.mm.yyyy" formatında yazmazsanız, yaptığınız değişiklik "dd.mm.yyyy" ile değiştiriliyor ve exit sub ile macro sona eriyor.

Ancak imleç, yine de sırada bulunan combobox un üzerine gidiyor.

Bu durumda iki sorum olacak :

1 - tarih istenildiği gibi girilmezse imleç sıradaki combobox a gitmesin, tarih textbox' un üzerinde kalsın ve [ dd.mm.yyyy ] ifadesini komple seçsin ki bir defada girişi tekrar deneyebilelim.

2 - Tab tuşuna basıldığında imleç, Userfomda göreceğiniz [ atla ] textboxlarına ve checkbox' lara hiç uğramadan sıradaki diğer textbox' un üzerine gitsin.

çalışma kitabı ektedir.

yardımcı olacaklara şimdiden teşekkürler...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
1.sorunuz için aşağıdaki kodları Textbox'ın Exit olayına yazınız.

Kod:
Private Sub TextBox416_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
    Cancel = Not IsDate(TextBox416.Value)
    If Cancel = True And TextBox416.Value <> "" Then
    MsgBox "tarihi, dd.mm.yyyy formatinda girin"
    With TextBox416
        .SelStart = 0
        .SelLength = Len(.Text)
        .SetFocus
    End With
    End If
End Sub
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
teşekkürler ripek,

ancak imleç, sıradaki combobox a gitmemekle beraber, tarih textboxu na da gitmiyor.

yeni veri girmem için mouse ile tıklamam gerekiyor... :???:
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Bende gayet güzel çalışıyor.Textbox adı farklı olabilir mi?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

2. sorunuz i&#231;in kod edit&#246;r&#252;n&#252; a&#231;&#305;n. Formunuzda Tab tu&#351;u ile gezerken u&#287;ramak istemedi&#287;iniz kutucuklar&#305; se&#231;ip &#214;zellikler (Properties) penceresinden TabStop &#246;zelli&#287;ini FALSE yaparsan&#305;z istedi&#287;iniz i&#351;lem ger&#231;ekle&#351;ir.
 
S

Skorpiyon

Misafir
Say&#305;n geren36,

Benim tavsiyem ise Frame nesneleri yerine Label nesnelerini kullanman&#305;z olacakt&#305;r. Zira frame'ler bir grup mant&#305;&#287;&#305; g&#252;derken, label'lerde b&#246;yle bir mant&#305;k yoktur.

Tab tu&#351;u ile gitmesini istedi&#287;iniz text nesnelerini ise ;
Formunuzun &#252;zerine fare ile sa&#287; tu&#351; yaparak "TAB ORDER" se&#231;ene&#287;inden rahatl&#305;kla ayarlayabilirsiniz.

Sayg&#305;lar&#305;mla...
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
sayın cost_control teşekkürler, işime yaradı.

sayın ripek, üzgünüm ama olmadı. tarihi doğru formatta girmediğimde textbox' ın almasını istediğim hali, ekteki [ .jpeg ] dosyasındaki gibidir.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Benim ekledi&#287;im dosya da aynen dedi&#287;iniz gibi i&#351;lem yap&#305;yor.

Siz hatal&#305; g&#246;steren dosyan&#305;z&#305; tekrar ekleyebilirmisiniz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. ripek beyin size &#246;nerdi&#287;i kodu a&#351;a&#287;&#305;daki &#351;ekilde de&#287;i&#351;tirip denermisiniz.

Kod:
Private Sub TextBox416_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    Cancel = True
    If IsDate(TextBox416.Value) = False And TextBox416.Value <> "" Then
    MsgBox "tarihi, dd.mm.yyyy formatinda girin"
    With TextBox416
        .SelStart = 0
        .SelLength = Len(.Text)
        .SetFocus
    End With
    Else
    Cancel = False
    TextBox416 = Format(TextBox416, "dd.mm.yyyy")
    End If
End Sub
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
üzgünüm arkadaşlar, beceremedim. :bad:

herhalde userformun ya da diğer nesnelerin bir yerlerindeki ayarlarım eksik ya da yanlış.. onları bir araştırayım..

zaman ve emek harcadığınız için teşekkür ederim.

iyi geceler..
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
&#350;&#246;yle &#231;&#246;zd&#252;m olay&#305; arkada&#351;lar.yard&#305;mlar&#305;n&#305;z i&#231;in tekrar te&#351;ekk&#252;rler.. :icelim:

Private Sub TextBox416_AfterUpdate()
If IsDate(TextBox416) <> True Then
MsgBox "tarihi, dd.mm.yyyy formatinda girin"
TextBox416.Text = "dd.mm.yyyy"
SendKeys ("+{TAB}"), 0
Exit Sub
End If
End Sub
 
Üst