• DİKKAT

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

Diğer sayfadan kontrol etme

Katılım
12 Ocak 2008
Mesajlar
54
Excel Vers. ve Dili
Excel 2010
Excel 2003
Türkçe
Merhaba stok sayımı için kullandığım bir excel dosyası var dosya şu anda 12 haneli bir rakam girince otomatik olarak ekliyor fakat benim istediğim değişiklik 12 haneli rakam ile değil dosyanın sayfa 2'deki a sütununda girilen değer ile eşleştirip eklemesi.Yani rakam girilen kısıma rakam değilde herhangi bir veri girince sayfa 2'deki a sütununu tarayacak girilen veri var ise ekleyecek yok ise bulunamadı diye hata vermesini istiyorum.

Bir diğer istediğim özellik ise stok kodu girilen userform'a 2 adet daha textbox ekledim eğer stok kodu kısmına girilen veri sayfa 2'de varsa ve ekleyecekse bu özel kodu-1 ve özel kodu-2 textboxlarını kontorl etmesi içinde veri var ise onuda yan hücreye eklemesi yok ise sadece girilen veriyi eklemesi.

Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Merhaba stok sayımı için kullandığım bir excel dosyası var dosya şu anda 12 haneli bir rakam girince otomatik olarak ekliyor fakat benim istediğim değişiklik 12 haneli rakam ile değil dosyanın sayfa 2'deki a sütununda girilen değer ile eşleştirip eklemesi.Yani rakam girilen kısıma rakam değilde herhangi bir veri girince sayfa 2'deki a sütununu tarayacak girilen veri var ise ekleyecek yok ise bulunamadı diye hata vermesini istiyorum.

Bir diğer istediğim özellik ise stok kodu girilen userform'a 2 adet daha textbox ekledim eğer stok kodu kısmına girilen veri sayfa 2'de varsa ve ekleyecekse bu özel kodu-1 ve özel kodu-2 textboxlarını kontorl etmesi içinde veri var ise onuda yan hücreye eklemesi yok ise sadece girilen veriyi eklemesi.

Yardımlarınız için şimdiden teşekkür ederim.

Merhaba ben sadece kendi görüşümü söylüyorum dosyanızda hiç veri yok bu dosyanıza bakan kişiler bence hiç bir şey anlamadan kapatacaktır.

Bence örnek verileriniz olmalı ve ne yapmak istediğinizi manuel yaparak örnek dosyanızla sorunuzu pekiştirin.
 
Dosyayı güncelledim bir kaç açıklama daha ekledim.Öneriniz için teşekkürler
 
Merhaba,

Aşağıdaki kodu deneyin.

Kod:
Private Sub TextBox1_Change()
    If ComboBox1 = "" Then
        MsgBox "Lütfen depo adı giriniz!"
        TextBox1 = Empyt
        ComboBox1.SetFocus
        Exit Sub
    End If
       
    If Len(TextBox1.Value) = 12 Then
        Satir = Cells(Rows.Count, 1).End(3).Row + 1
        Set Bul = Sheets("Sayfa2").Range("A:A").Find(TextBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Cells(Satir, 1) = TextBox1
            Cells(Satir, 2) = ComboBox1
            Cells(Satir, 3) = 1
            Cells(Satir, 5) = TextBox2
            Cells(Satir, 6) = TextBox3
        Else
            MsgBox "Aradığınız barkod bulunamadı!", vbInformation
        End If
        Set Bul = Nothing
        TextBox1 = ""
    End If
End Sub
 
Merhaba,

Aşağıdaki kodu deneyin.

Kod:
Private Sub TextBox1_Change()
    If ComboBox1 = "" Then
        MsgBox "Lütfen depo adı giriniz!"
        TextBox1 = Empyt
        ComboBox1.SetFocus
        Exit Sub
    End If
       
    If Len(TextBox1.Value) = 12 Then
        Satir = Cells(Rows.Count, 1).End(3).Row + 1
        Set Bul = Sheets("Sayfa2").Range("A:A").Find(TextBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Cells(Satir, 1) = TextBox1
            Cells(Satir, 2) = ComboBox1
            Cells(Satir, 3) = 1
            Cells(Satir, 5) = TextBox2
            Cells(Satir, 6) = TextBox3
        Else
            MsgBox "Aradığınız barkod bulunamadı!", vbInformation
        End If
        Set Bul = Nothing
        TextBox1 = ""
    End If
End Sub
İlginiz için teşekkürler eklediğiniz kod anladığım kadarıyla 12 hane üzerinden çalışıyor fakat benim istediğim herhangi bir hane üzerinden çalışmaması sadece sayfa 2'deki A sütununu kontrol etmesi A sütununda var ise eklemesi yok ise hata vermesi şeklinde.
 
Merhaba,

Bu durumda kodu Change olayına değil bir butona bağlamak daha doğru olacaktır. Çünkü Change olayında her karakterde arama işlemi yapılacağı için sağlıklı çalışmayacaktır.
 
Merhaba,

Bu durumda kodu Change olayına değil bir butona bağlamak daha doğru olacaktır. Çünkü Change olayında her karakterde arama işlemi yapılacağı için sağlıklı çalışmayacaktır.

Peki hane kriterini ikiye çıkarırsak problem olur mu mesela sadece 6 veya 12 hane üzerinden girilen kodun doğruluğunu değerlendirse yani 6 hane yazınca 6 haneli stok kodu varsa eklesin yoksa 12 haneyi aramasını sağlayabilirmiyiz.
 
Merhaba,

Bu durumda aşağıdaki satırı;

Kod:
If Len(TextBox1.Value) = 12 Then

Bununla değiştirip deneyin.

Kod:
If Len(TextBox1.Value) = 6 Or Len(TextBox1.Value) = 12 Then
 
Merhaba,

Bu durumda aşağıdaki satırı;

Kod:
If Len(TextBox1.Value) = 12 Then

Bununla değiştirip deneyin.

Kod:
If Len(TextBox1.Value) = 6 Or Len(TextBox1.Value) = 12 Then

Belirttiğiniz gibi değişikliği yaptım fakat şöyle bir sorun oluşuyor. örneğin 6 haneli kod 123456 olsun ve başka bir 12 haneli kod ise 123456789111 şeklinde olduğu zaman ilk kodu ekliyor.Bunun çözümü için ilk 6 haneli kod girildiğinde 1 saniye gibi bekleme süresi olmalı böylece 123456'dan sonra devam ediyorsa direkt olarak ekleme yapmaz.Ya da bu mümkün değilse belirttiğiniz gibi bir buton yardımıyla bu iş olmalı ayrıcada 'Enter' tuşu ile ekleme yapılabilmeli.
Ek olarak verdiğiniz kodda eksik olarak daha önce aynısı eklenmiş stok kodu varsa adet kısmını 1 arttırıyordu bunun olmadığını fark ettim yardımlarınız için teşekkürler.
 
Merhaba,

Bence bu iş için buton kullanın.

Kod:
Private Sub CommandButton3_Click()
    If ComboBox1 = "" Then
        MsgBox "Lütfen depo adı giriniz!"
        TextBox1 = Empyt
        ComboBox1.SetFocus
        Exit Sub
    End If
 
    If Len(TextBox1.Value) = 6 Or Len(TextBox1.Value) = 12 Then
        Satir = Cells(Rows.Count, 1).End(3).Row + 1
        Set Bul = Sheets("Sayfa2").Range("A:A").Find(TextBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Set Eski_Kayit = Range("A:A").Find(TextBox1, , , xlWhole)
            If Not Eski_Kayit Is Nothing Then
                Cells(Eski_Kayit.Row, 1) = TextBox1
                Cells(Eski_Kayit.Row, 2) = ComboBox1
                Cells(Eski_Kayit.Row, 3) = Cells(Eski_Kayit.Row, 3) + 1
                Cells(Eski_Kayit.Row, 5) = TextBox2
                Cells(Eski_Kayit.Row, 6) = TextBox3
            Else
                Cells(Satir, 1) = TextBox1
                Cells(Satir, 2) = ComboBox1
                Cells(Satir, 3) = 1
                Cells(Satir, 5) = TextBox2
                Cells(Satir, 6) = TextBox3
            End If
        Else
            MsgBox "Aradığınız barkod bulunamadı!", vbInformation
        End If
        Set Bul = Nothing
        TextBox1 = ""
    End If
End Sub

ENTER olayı içinde çalışmanıza aşağıdkai kodu ekleyin.

Kod:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn And Len(TextBox1) = 6 Or Len(TextBox1) = 12 Then CommandButton3_Click
End Sub
 
Son verdiğiniz şekilde düzenledim.
Korhan bey yardımınız ve ilginiz için teşekkür ederim.
 
Geri
Üst