• DİKKAT

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

sesli veri doğrulama

Katılım
14 Aralık 2005
Mesajlar
23
örnekteki dosyada d3 hücresine hatalı kayıt girdiğimde e3 hücresinde hatalı kayıt yazısı çıkmaktadır.Benim istediğim d3 hücresine hatalı kayıt girdiğimde sesli herhangi bir uyarı yapılması(örneğin veri doğruama yaptığımda hata mesajı görünmekte ancak ben bunu herhangi bir ses ilede desteklemek istiyorum)
 
Aşağıdaki kodu sayfanın kod kısmına ekleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If [e3] = "hatalı kayıt" Then Beep
End Sub
 
teşekkür

dostum çok teşekkür ederim de bir sorum daha olacaktı beep sesini değitrime şansımız varmı
 
Aşağıdaki kodları ekleyip dener misiniz? Aslına bakarsanız tek satırlık bir kod vardı ama onu bulamadım.
Not:İstediğiniz "wav" dosyasını ekleyerek kullanabilirsiniz.
Kod:
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, _
 ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000


Private Sub Worksheet_Change(ByVal Target As Range)
If [e3] = "hatalı kayıt" Then Call PlaySound("C:\WINDOWS\Media\ding.wav", 0&, SND_ASYNC Or SND_FILENAME)

End Sub
 
Merhaba,

4. mesajda Sn. Hamitcan beyin kodunu ben kullanmak istedim fakat beceremedim. Ekteki dosyamda sarı renkli yerde formül sonucunda oluşan değer 60 sayısına ulaştığında sesli uyarı vermesi lazım..her 60 oldugunda müzik çalacak. Deneme isimli wav uzantılı dosyayı C:\WINDOWS\Media\deneme.wav" yoluna koydum. gerisi nasıl yapacağımı bilmiyorum.. Eki incelerseniz ne yapmak istediğimi anlarsınız.. Yardımcı olacaklara şimdiden teşekkürler.

Not: Çalışmamı 2007 olan bilgisayarda kullanacam..
 

Ekli dosyalar

Son düzenleme:
Kodları, Sayfa1'in kod kısmına ekleyin.
Kod:
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, _
 ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
If [n6].Value = 60 Then Call PlaySound("C:\WINDOWS\Media\chimes.wav", 0&, SND_ASYNC Or SND_FILENAME)

End Sub
 
Kodları, Sayfa1'in kod kısmına ekleyin.
Kod:
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, _
 ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
If [n6].Value = 60 Then Call PlaySound("C:\WINDOWS\Media\chimes.wav", 0&, SND_ASYNC Or SND_FILENAME)

End Sub

Hocam kod için teşekkür ederim. Kusura bakmayın eksik anlattığım bişey var Örnek 59'dan 65 oluyor 75 oluyor, Hergün sıfırdan başlıyor ve büyüyor bu sayı ama nasıl büyüdüğü belli olmuyor.. böyle durumlarda da çalması için kodu değiştirebilir miyiz?
 
Son düzenleme:
Sorunuzu anlamadım, daha açık anlatır mısınız ?
 
Hocam Çalışmamın aslını yolluyorum.. ilgili hücre 60 olunca ses çıkıyor fakat ne yaparsam ses çıkarıyor örnek bişi siliyorum ses geliyor.. Olması gereken Sarı renklı hücre 60'ı geçince ses çıkması.. Sizin verdiğiniz kodda 60 olunca ses geliyor. örnek 59dan 65 oldu diyelim ses çıkması lazım..
 

Ekli dosyalar

N6 hücresi 60 dan küçük ses çıkmasın.
N6 hücresi 60 dan büyük ve 60 a eşit ise ses çıksın.
Yazdıklarınızdan yukarıdaki sonuçları çıkardım.Kodu da buna göre düzenledim.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [f15:f63]) Is Nothing Then Exit Sub
If [n6].Value >= 60 Then Call PlaySound("C:\WINDOWS\Media\ringin.wav", 0&, SND_ASYNC Or SND_FILENAME)
End Sub
 
Hocam hata veriyor, Benim çalışmama ekleyip yollar mısınız? Bide her harakette ses çıkarmayacak sadece 60' geçtiğinde ses cıkarması yeterli.. 60 olan hücrede toplama formülü var F sütununa veriler girdikçe bu toplama formülündeki sayı artıyor. 60'ı geçtiğinde uyarı vermesi lazım..
 
Sayın S.Yiğit, N6 hücresindeki 65 sayısı F15:F63 hücrelerindeki toplamdan geliyor, öyleyse burada yapılacak bir değişiklik kodun çalışmasını tetiklemeli. Ben de bu mantıktan hareket ederk bu kodu yazdım ayrıca dosyayı da ekledim, inceleyebilirsiniz.
 

Ekli dosyalar

Sn hocam, bu uyarıyı bir kere vermesi yeterli. Eklediğiniz dosyada f15:f63 aralığına sayılar giriyorum ve 60 olduktan sonra ne işlem yaparsam uyarı veriyor. 60'ı geçtiğinde bir kere uyarması yeterli.. Yani kısaca değerleri girerken Excel bize 60'ı geçtin diye sesli uyarı versin, sonrasında ben çalışmama devam edecem.. Anlatım bozukluğum var kusura bakmayın.. Teşekkürler..
 
Anladığım kadarıyla, ses, dosya kapanıncaya kadar bir kere çalacak. Öyleyse kodu aşağıdaki ile değiştirin.
Kod:
Public s As Byte
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, _
 ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [f15:f63]) Is Nothing Then Exit Sub
If [n6].Value >= 60 Then
If s <> 1 Then Call PlaySound("C:\WINDOWS\Media\ringin.wav", 0&, SND_ASYNC Or SND_FILENAME)
End If
s = 1
End Sub
 
Hocam bu sefer olmuş fakat örnek değer 59 iken değer girdim 61 oldu ve ses geldi kaydetip kapattım sonra acıp bir sayı daha girdim ve 61 iken 63 oldu diyelim yine ses geliyor :) Dediğiniz gibi bir kere çalacak ama 60'ı geçtiğinde çalacak. Bu sayılar 0'dan başlıyor ve 110'a kadar falan yükseliyor, bizim derdiğimiz 60'ı geçtiğimizde uyarı vermesi.. Sizide uğraştırıyorum :(
 
Dosyayı kapatıp açarsanız tabii ki hafızadaki değeri siliyor. Dosyayı kapatmadan çalıştığınız sürece ses bir kere çalacak bir daha çalmayacaktır.
 
Hocam anlatamadım galiba, Diyorumki değer 61 oldu ses geldi kaydetip kapattım sonra değer 61 iken acıyorum başka değer giriyorum ses geliyor gelmemesi lazım :)
 
Yok hocam olmamış. :( Gönderdiğiniz dosyayı açtığımda değer 69 du bir değer girdim ve yine çaldı. Sanırım ben bir yerde yanlış anlatıyorum. ama sonuç olarak 60'ı geçtiğinde uyarı verecek hepsi bu.. Bu sayfayı sabah acıyoruz değerler giriyoruz kaydetip kapatıyoruz sonra tekrar acıyoruz tekrar değer giriyoruz sonra tekrar kapatıyoruz ve bu arada 60'ı geçtiğinde uyarı istiyoruz. Ertesi gün taşı ve kopyala diyip değerleri sıfırlıyoruz sonra yine aynı şeyleri yapıyoruz. Günlük yapılan bişey bu. Teşekkür ederiz sizide uğraştırıyorum..

Not: ben bu çalışmayı ingilizce 2007de kullanacam ama şuan 2003 ingilizce var. acaba bundan dolayı sorun oluyor olabilir mi?
 
Geri
Üst