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,040
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

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
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.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
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.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,040
Excel Vers. ve Dili
Office 2013 İngilizce
Hoxalarım teşekkürler
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,040
Excel Vers. ve Dili
Office 2013 İngilizce
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ı
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
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
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,040
Excel Vers. ve Dili
Office 2013 İngilizce
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.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
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.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,040
Excel Vers. ve Dili
Office 2013 İngilizce
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

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
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
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,040
Excel Vers. ve Dili
Office 2013 İngilizce
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
 
Üst