• DİKKAT

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

Soru Farklı hücre değeri için sesli uyarı

Katılım
24 Ağustos 2017
Mesajlar
34
Excel Vers. ve Dili
Office 2010 English
Arkadaşlar merhaba,

Ofisimizde barkod okuyucu ile ürünleri okutup barkod bilgilerini excele alıyoruz ancak bazı durumlarda barkod okuyucu doğru okuma yapamayarak 6 haneli bir rakam okuyor. Ben bu durum oluştuğunda sesli bir uyarı almak istiyorum ki barkod okuturken sürekli ekranı takip etmek zorunda kalmayalım. Ekli excel listesinde bir örnek oluşturdum, 16. satırda barkod okuyucunun hatalı okuma yaparak 13 haneli barkod yerine 6 haneli tanımsız bir rakam getirdiğini örnekledim.

Yardımcı olabilirseniz çok sevinirim.

https://www.dosya.tc/server22/f5p2dx/Barkod_Listesi.xlsx.html
 
Merhaba sayfanın kod bölümüne aşağıdaki kodu yapıştırıp deneyiniz (Barkod okuyucunun enter özelliğinin açık olduğunu varsayıyorum)
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 16 Then
    If Len(Target) <> 13 Then
        Target.Select
        Target.Interior.Color = 255
        Beep
    Else
        Target.Offset(0, 1).Select
        Target.Interior.Pattern = xlNone
    End If
End If
End Sub
Dosyanızı indiremediğim için , söylediklerinizden yola çıkarak yazdım kodları.
 
Çok teşekkür ederim. Dosya açılıyor bu arada, şimdi denedim tekrar. Ben bir deneyip size geri dönüş yapacağım. Sanırım yazdığınız kod, 13 haneli rakam dışındaki her rakam için uyarı verecek.
 
Evet dosyanız açılıyordur doğrudur ,ben indiremiyorum maglesef benle alakalı :) dosya indirme sitelerine kısıtlı pc . Doğrudur 13 hane dışındakilerde uyarı verecek.
 
Şimdi denedim macroyu ancak 16.satırdan sonra yana doğru okumaya başladı. Sanırım ben doğru anlatamadım, hata her seferinde 16. satırda oluşmuyor. Ne aksidir ki 100 tane barkod okuttum hala hatalı bir okuma yapmadı cihaz :)
 
Tamamdır kodu güncelledim , birde barkod okuyucu ile denemeniz şart değil manual el ile de deneyebilirsiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Row = 16 Then
    If Len(Target) <> 13 Then
        Target.Select
        Target.Interior.Color = 255
        Beep
    Else
        'Target.Offset(0, 1).Select
        Target.Interior.Pattern = xlNone
    End If
'End If
End Sub
 
Çok teşekkürler. Kod çalışıyor, 13 hanenin dışındaki her rakamda zemin kırmızı oluyor ve bir uyarı sesi veriyor, tam istediğim gibi oldu. Elinize sağlık

Peki ses tonunu değiştirme gibi bir şansımız var mı? Beep dışında başka bir ton, daha sinir bozucu birşey olsa da kaçırma şansımız olmasa hatayı :)
 
Bu arada barkod okuyucu ile deniyorum okutmayı şimdi ama yana okuyor barkodları, normalda barkod okuyucunun default ayarı alt ya da enter.
 
Rica ederim , işinizin olmasına sevindim . Kodu tekrar kopyalayıp deneyiniz ('Target.Offset(0, 1).Select) komutunu pasif hale getirdim, Beep komutu var bildiğim. Tabi bir takım API' ler kullanarak dilerseniz Şarkı bile çaldırabilirsiniz , biraz araştırmak gerekir.
 
Teşekkür ediyorum tekrardan. Rica etsem güncel kodu tekrar paylaşma şansınız var mı? Yukarıdaki 2 kod birbiri ile aynı.
 
Tekrardan merhaba, ben o bölümü kodun içinden silip kaydettim ve alt alta okumaya başladı, 12 haneli bir barkod okuttum, normalde sesli uyarı verip, o hücreyi kırmızıya boyadıktan sonra okutulan barkodları sıralamaya devam etmesi gerekiyor ancak okuyucunun tetiğine bastığım anda hatalı hücrenin içine barkod getiriyor ve hatalı alan silinmiş oluyor.
 
Target.offset(0,1) yerine target.offset(1,0) olarak deneyin. İlk halinde aynı satır bir sağ iken bu şekilde 1 alt satır aynı sütun şeklinde kaydırır.
 
Merhaba güncel olarak aşağıdaki kodu deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target) <> 13 Then      
    Target.Interior.Color = 255
    Beep
Else      
    Target.Interior.Pattern = xlNone
End If
End Sub
 
Çok çok teşekkür ediyorum. Şimdi tam istediğim gibi çalışıyor kod :)
 
Geri
Üst