Soru TexBox Karakter Sınırlaması hkk,

Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Merhaba,
Kod:
If Len(TextBox1.Value) < 13 Then Exit Sub
İlgili kod ile ve ;
Properties / MaxLength
Kriterinden texboxa karakter sınırlaması yapabiliyoruz.

Burada ki sorum; 13 haneli bir barkodu scanner ile okuttuğumda userform ekranında ilgili barkoda ait ürünün detaylarını diğer texboxlara çekebiliyorum. Fakat burada barkod 13 hanelide olabiliyor iken bazen 14-15-16-17-18-19-20 vs... gibi karakter sayılarına çıkabiliyor. TexBox1'e karakter sınırlaması getirmeden işlem yapabilmem için kodda nasıl bir revize yapmam gerektiği kısmında kıymetli desteklerinizi talep ederim.

Syg,
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,838
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Muhtemelen soruyu yanlış anladım ama eğer barkod karakter sayısı değişkense karakter sınırlaması yapmamanız gerekmez mi?
Yada neden karakter sayısını sınırlandırmak istiyorsunuz?
Barkod okuyucu ile TextBox'a barkodu okutuyorsanız zaten ekstra karakter eklemez.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@Muzaffer Ali Hocam,
Sorum ve sorunum o zaten sınırlamayı nasıl kaldıracağım?
Kodun tamamını aşağıda paylaşıyorum;
Mümkünse kıymetli desteklerinizi talep ederim :)

Kod:
Private Sub TextBox1_Change()

If Len(TextBox1.Value) < 13 Then Exit Sub
Dim kayitsayisi, kacincikayit, satirsayisi As Long
       
   '***www.excel.wep.tr destek başlangıç***
    If WorksheetFunction.CountIf(Sheets("Data").Range("A1:A1048576"), TextBox1.Value * 1) = 0 Then
        TextBox1.Value = ""
        TextBox1.SetFocus
        Exit Sub
    End If
    '***www.excel.wep.tr destek bitiş***
                 
    '***Buradaki kodları revize ettim
    If TextBox1.Value = Label12.Caption Then
        kayitsayisi = TextBox9.Value
        If TextBox10.Value = TextBox9.Value Then
            kacincikayit = 1
            satirsayisi = WorksheetFunction.Match(TextBox1.Value * 1, Sheets("Data").Range("A1:A1048576"), False)
        Else
            TextBox10.Value = TextBox10.Value + 1
            kacincikayit = TextBox10.Value
            satirsayisi = Label13.Caption * 1
            Nerede = WorksheetFunction.Match(TextBox1.Value * 1, Sheets("Data").Range("A" & satirsayisi + 1 & ":A1048576"), False)
            satirsayisi = satirsayisi + Nerede
        End If

        TextBox9.Value = kayitsayisi
        TextBox10.Value = kacincikayit
        Label13.Caption = satirsayisi
       
        TextBox2.Value = Sheets("Data").Range("B" & satirsayisi).Value
        TextBox3.Value = Sheets("Data").Range("C" & satirsayisi).Value
        TextBox4.Value = Sheets("Data").Range("A" & satirsayisi).Value
        TextBox5.Value = Sheets("Data").Range("D" & satirsayisi).Value
        TextBox6.Value = Sheets("Data").Range("E" & satirsayisi).Value
        TextBox7.Value = Sheets("Data").Range("F" & satirsayisi).Value
        TextBox8.Value = Sheets("Data").Range("G" & satirsayisi).Value
        TextBox11.Value = Sheets("Data").Range("H" & satirsayisi).Value
       
    Else
        Label12.Caption = TextBox1.Value
        kacincikayit = 1
        kayitsayisi = WorksheetFunction.CountIf(Sheets("Data").Range("A:A"), TextBox1.Value)
        satirsayisi = WorksheetFunction.Match(TextBox1.Value * 1, Sheets("Data").Range("A1:A1048576"), False)
       
        TextBox9.Value = kayitsayisi
        TextBox10.Value = kacincikayit
        Label13.Caption = satirsayisi
       
        TextBox2.Value = Sheets("Data").Range("B" & satirsayisi).Value
        TextBox3.Value = Sheets("Data").Range("C" & satirsayisi).Value
        TextBox4.Value = Sheets("Data").Range("A" & satirsayisi).Value
        TextBox5.Value = Sheets("Data").Range("D" & satirsayisi).Value
        TextBox6.Value = Sheets("Data").Range("E" & satirsayisi).Value
        TextBox7.Value = Sheets("Data").Range("F" & satirsayisi).Value
        TextBox8.Value = Sheets("Data").Range("G" & satirsayisi).Value
        TextBox11.Value = Sheets("Data").Range("H" & satirsayisi).Value
       
    End If
   

TextBox1.Value = ""
TextBox1.SetFocus

End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,838
Excel Vers. ve Dili
2019 Türkçe
Karakter kontrolü sadece bu satırda var.
Kod:
If Len(TextBox1.Value) < 13 Then Exit Sub
13 karakterden az ise kodlar durduruluyor.
Eğer 13 karakterden daha az barkodlar varsa bu satırı silmelisiniz.

Ayrıca
Textbox Properties / MaxLength = 0 olmalı
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@Muzaffer Ali Hocam,
Maalesef sildiğimde hata alıyorum.
En kısa zamanda örnek dosya paylaşımı yapacağım dosya üzerinden ilerlesek daha sağlıklı olacak sanırım.
Hayırlı akşamlar...
Teşekkürler...
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Excel Web destek kısmındaki kodlar veri yoksa textboxı boşaltıyor. O kısmı da iptal edip dener misiniz?
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@YUSUF44 Hocam,
Yarın kontrol edip dönüş yapacağım.
Teşekkürler.
Hayırlı geceler.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@YUSUF44 Hocam,
Dediğiniz gibi sildim fakat hata alıyorum.

Şimdi daha detaylı izah edeyim; Elimizde bir etiket var bu etiketin üstünde bir "kare barkod" birde "ürün ıd nin olduğu barkod" alanı mevcut. Mevcut örnek dosyasında ürün ıd barkod alanında scanner ile okutmayı yapıyoruz. Fakat burada aynı ürün ıd den olan bir modelin örneğin 8683113557825 ürün ıd den 93 adet mevcut ve ben elimdeki barkodun bilgisine ulaşana kadar tek tek okutma yapıyorum. Ekrana gelen bilgiler ile etiket üstünde ki bilgilerin uyuşması gerekmekte olduğundan uyuşana kadar okutma yapmak durumundayım. Elimdeki etiketin üstünde özel kod, mağaza kod ve mağaza ad gibi bilgileri içermektedir. Ekran ile etikette bulunan bilgilerin uyuşması durumunda hata bilgisini etiketin üstüne yazmaktayım. Amaç budur.

Fakat kare barkoddan yapılan okutmalarda daha farklı mesela "İST385!İST385!8683113557825" bu şekilde direk mağaza kod, ad ve ürün ıd yi vermektedir. Ürün ıd barkodunda ise sadece "8683113557825" ürün ıd vermektedir. Kare barkod ile okutma yaptığımda direk ilgili kaydı bulabiliyor olacağım için ilgili dosyamda kare barkoda göre revize yapmam gerekiyor.

Ekte dosyalarımı paylaşıyor, kıymetli desteklerinizi talep ediyorum.
Umarım meramımı doğru ve yerinde anlatabilmişimdir :)
Teşekkürler, iyi çalışmalar.
Syg.


237928
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodların ilgili yerlerinde

Textbox1.Value * 1

yerine

"*" & TextBox1.Text & "*"

Kullanmayı deneyin.
 
Üst