• DİKKAT

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

textbox exit olayı

Katılım
22 Nisan 2006
Mesajlar
28
Excel Vers. ve Dili
2003 türkçe
İyi çalışmalar arkadaşlarım.

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
for a = 1 to sheets(1).[a65536].end(3).row
if textbox7.text = sheets(1).cells(a,1) then
msgbox ("tekrar kayıt yapamazsınız")
xxxxxxxxxx
else
end if
End Sub

Sorum şöyle ki xxxxxxxxx yerine ne gelmeli ki tekrarlı kayıt varsa curser başa yani textbox7'ye geri dönsün. Ya da bu kodları yanlış olay içinde mi tanımlıyorum. Daha uygun olay var mıdır?

İlginiz için teşekkürler...
 
Selamlar,

Kodlarınızı aşağıdaki ile değiştirip denermisiniz.

Kod:
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox7 = "" Then
    Cancel = False
    Exit Sub
    End If
    Say = WorksheetFunction.CountIf([A:A], TextBox7.Value)
    If Say > 0 Then
    MsgBox "BU KAYIT DAHA ÖNCEDEN GİRİLMİŞTİR. LÜTFEN VERİLERİNİZİ KONTROL EDİNİZ.", vbCritical
    Cancel = True
    TextBox7 = ""
    Else
    Cancel = False
    End If
End Sub
 
Teşekkürederim. Aradığım buydu.
Sanırım başa dönmeyi sağlayan kod;
cansel = true

Ayrıca textbox7'yi boş geçmemek gerekiyordu onun için;

If TextBox7 = "" Then
Cancel = true
Exit Sub
End If
yaptım.

tekrar teşekkürederim.
 
Herkese selamlar

Benim yaptığım programda da textbox exit olayını kullanıyorum ama tam randımanlı olmuyor. exit olayının tersine textboxlara giriş olayı var mıdır?
Varsa benim için daha iyi olacak.

Saygılar.
 
Textbox değiştinde

Private Sub TextBox1_Change()
..Kodlarınız
End Sub

Textboxta tuşlara bastığınızda

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
..Kodlarınız
End Sub

Textbox enter olayında

Private Sub TextBox1_Enter()
..Kodlarınız
End Sub

gibi kısımlarında size yarayanları seçebilirsiniz. Textbox'ı oluşturduğunuzda VBA penceresinizi ilk açılır kutucuğunda Textbox object kısmı vardır. Yanındaki ikinci açılır kutucukta ise isteğinize uygun procedure(prosedür) kısmı bulunmaktadır.
 
Teşekkürler.
Yukarıdaki olayları inceledim fakat sanırım istediğimin tam karşılığı yok.

Private Sub TextBox1_Change()
..Kodlarınız
End Sub
Bu olayla idare edeceğim galiba.
 
çok şeyler öğrendim sayenizde, az bişey daha öğrenirsem gerisini kendim getirecem. şunu soruyorum; aşağıdaki programı adım adım açıklarmısınız sn cost control. lütfeenn.

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox7 = "" Then
Cancel = False
Exit Sub
End If
Say = WorksheetFunction.CountIf([A:A], TextBox7.Value)
If Say > 0 Then
MsgBox "BU KAYIT DAHA ÖNCEDEN GİRİLMİŞTİR. LÜTFEN VERİLERİNİZİ KONTROL EDİNİZ.", vbCritical
Cancel = True
TextBox7 = ""
Else
Cancel = False
End If
End Sub
 
Sn.Costcontrol'un affına sıgınarak cevaplamak istedim

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox7 = "" Then 'textbox7 boş ise işlem yapmamasını sağlıyor
Cancel = False
Exit Sub
End If
Say = WorksheetFunction.CountIf([A:A], TextBox7.Value)
' Aşagıdaki kod ise A kolonunda textbox7 deki ifadeyi sayıyor
If Say > 0 Then
' bu ifade 0 dan buyuk ise Kayıt yapılamaz uyarı almanızı sağlayan bir message Box harekete geçiyor.
MsgBox "BU KAYIT DAHA ÖNCEDEN GİRİLMİŞTİR. LÜTFEN VERİLERİNİZİ KONTROL EDİNİZ.", vbCritical
Cancel = True
TextBox7 = ""
Else
Cancel = False
End If
End Sub

Sn.Costcontrol eksik veya yanlıs anlatım varsa Lütfen Düzeltiniz.
 
Son düzenleme:
Benim yaptığım programda da textbox exit olayını kullanıyorum ama tam randımanlı olmuyor. exit olayının tersine textboxlara giriş olayı var mıdır?

Elbette vardır. Bunun için textbox un enter olayı kullanılır. Örneğin,

Kod:
private sub textbox1_enter()
.
.
.
end sub

Bu prosedür imleç textboxa geldiği anda çalışacaktır.
 
Teşekkür ederim üstadım.
Bu olay mouse ile tıklandığı zaman da aynı etkiyi veriyor. Kod yükünden kurtulmuş oldum.
 
Selamlar,

Sn. kemaldemir bey,

Forumumuz bilgi paylaşım forumu sizde bilgilerinizi paylaşacaksınızki forum üyeleri bunlardan faydalanabilsin. Sadece küçük bir hatırlatma yapabilirim kodların aynına yazdığınız açıklamaları farklı bir renkle yazarsanız daha dikkat çekici olabilir.

Paylaşımınız ve desteğiniz için teşekkür ederim.
 
Kemal bey affınıza sığınarak bir açıklama daha isteyeceğim.şunu da açıklarmısınız? teşekkürler,
Set s1 = Sheets("sayfa1")
For a = 2 To s1.[A65536].End(3).Row
If Left(buyuk(s1.Cells(a, "B")), Len(ComboBox)) = buyuk(ComboBox) Then
c = c + 1
For b = 2 To 5
ListBox1.AddItem
ListBox1.List(c - 1, 0) = s1.Cells(a, "a")
ListBox1.List(c - 1, 1) = s1.Cells(a, "d")

bir de şu Initialize() ne demek ve bu olaylardan sonra () iki parantez arasına ne zaman yazmak gerekir, ne işe yarıyor.
çok çok teşekkür ediyorum gerçekten.
 
bir de şu Initialize() ne demek ve bu olaylardan sonra () iki parantez arasına ne zaman yazmak gerekir, ne işe yarıyor.
çok çok teşekkür ediyorum gerçekten.

Her nesnenin çalışma şeklini belirleyen olayları (event) vardır. initialize olayıda userform nesnesi için geçerli bir olay olup, userform aktif hale geçmeden gerekli işlemlerin yapılmasını sağlar, örneğin userform üzerindeki combobox veya listboxa veri yüklemek gibi. "()" parantezler ise prosedür veya fonksiyonu tanımlar. Bu parantezler olmadan zaten fonksiyon veya prosedür yazamazsınız. Ayrıca parantezler arasında prosedür veya fonksiyonlarda kullanılacak değişkenleri tanımlayabilirsiniz. Örneğin,

Sub macro1(deger as boolen)

function hesap(deger,aralik)
 
Vermiş olduğunuz bilgileriniz için çok teşekkür ederim
 
Geri
Üst