• DİKKAT

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

Userform Textbox değişim olayının bittiğini algılatma

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
userform' da barkod okuturken, okutalan değeri Sayfa' da hücreye aktarsın istiyorum
değerleri sırayla okuttuğu için Textbox' un Change olayına yazdığımda, her bir harf' te değişiklik olarak algıladığı için her bir yeni karakter geldiği zaman hücrede aşağıya doğru yazmaya devam ediyor.

textbox içinde barkod okutmanın bittiği (değişimin bittiği) nasıl algılatabiliriz?
Özetle aşağıda butonla yapılan işlemin buna gerek kalmadan yapılabilir mi diye araştırıyorum.

bunun bir çözümü olabilir mi?

desteğiniz için şimdiden teşekkürler,
iyi akşamalar.

Kod:
Private Sub CommandButton1_Click()
Dim rw As Long

rw = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row

    Sayfa1.Range("A" & rw + 1).value = Me.TextBox1.value
   
    Me.TextBox1 = ""
     Me.TextBox1.SetFocus
  
End Sub
 

Ekli dosyalar

Barkod uzunlukları aynı ise Change eventinde uzunluk kontrolü yapılabilir.
Kod:
Private Sub TextBox1_Change()
Dim rw As Long

rw = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row
If Len(Me.TextBox1.Value) = 10 Then
    Sayfa1.Range("A" & rw + 1).Value = Me.TextBox1.Value
   
    Me.TextBox1 = ""
     Me.TextBox1.SetFocus
     End If
End Sub

veya
Kod:
Private Sub TextBox1_AfterUpdate()
Dim rw As Long

rw = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row

    Sayfa1.Range("A" & rw + 1).Value = Me.TextBox1.Value
   
    Me.TextBox1 = ""
     Me.TextBox1.SetFocus
End Sub

veya Barkod okuma işlemi bittikten sonra TAB, ENTER vb. hangi tuşa bastığı bilinirse ona göre kod oluşturulabilir.
 
Merhaba,

Barkod okuyucuların çoğunda oto - Enter işlevleri kendi içlerinde var. Kullandığınız cihaza dair ayarları bulduktan sonra KeyPress - Enter olayı ile okutmayı yapabilirsiniz.
 
Hoxalarım teşekkürler
 
Merhaba,

Barkod okuyucuların çoğunda oto - Enter işlevleri kendi içlerinde var. Kullandığınız cihaza dair ayarları bulduktan sonra KeyPress - Enter olayı ile okutmayı yapabilirsiniz.
Hocam tekrar merhaba,

Barkod okutmanın sonunda "enter" bulunuyormuş, KeyPress - Enter olayı ile okutmayı denedim, yalnız olmadı
 
Aşağıdaki kodu dener misiniz? Butonun TabStop özelliğini de False olarak değiştirirseniz faydalı olacaktır.

Kod:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Dim rw As Long

rw = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row

    Sayfa1.Range("A" & rw + 1).Value = Me.TextBox1.Value
  
    Me.TextBox1 = ""
     Me.TextBox1.SetFocus
     End If
End Sub
 
Aşağıdaki kodu dener misiniz? Butonun TabStop özelliğini de False olarak değiştirirseniz faydalı olacaktır.

Kod:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Dim rw As Long

rw = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row

    Sayfa1.Range("A" & rw + 1).Value = Me.TextBox1.Value
 
    Me.TextBox1 = ""
     Me.TextBox1.SetFocus
     End If
End Sub
Hocam teşekkürler,
Yalnız burada tekrar TextBox1' a focus' lanmıyor.
bir sonraki sıradaki butona focuslanıyor.
Bu durumu nasıl çözebiliriz.
iyi çalışmalar.
 
En kolay yolu önceki mesajımda belirttiğim gibi Buton'un TabStop özelliğini False yapmak bence. Tabii eğer geçiş için TAB Tuşu kullanmaya ihtiyacınız yoksa.
 
En kolay yolu önceki mesajımda belirttiğim gibi Buton'un TabStop özelliğini False yapmak bence. Tabii eğer geçiş için TAB Tuşu kullanmaya ihtiyacınız yoksa.
TabStop özelliğini "False" zaten Hocam
ekli görselde:
 

Ekli dosyalar

  • 123.jpg
    123.jpg
    163.6 KB · Görüntüleme: 3
Textbox1 değil, butonun False olmalı. Textbox false olduğu için focus işlemiyor da olabilir. Textbox - True / Buton - False olarak değiştirin
 
False olmalı. Textbox false olduğu için focus işlemiyor da olabilir. Textbox - True / Buton - False olar

Butonun' da özelliği False idi; aşağıdaki şekilde çözüldü ama; bilmiyorum bir eksiklik var mıdır?

Kod:
    If KeyCode = 13 Then
        MsgBox "Hello"
        KeyCode = 0
   
        Me.TextBox1.SetFocus
    End If
 
Geri
Üst