Excel Koşullu Ses Çalma

Katılım
16 Mayıs 2017
Mesajlar
14
Excel Vers. ve Dili
2016 c++
Selamlar herkese,

Excel dosyasında bir IF komutum var. Bir sayı değerine bağlı olarak örnek veriyorum sayı 10 dan büyük iste B1 10 dan küçük ise A1 hücresinde yazı yaz. IF içinde tekrar IF yazarak ses dosyası çalamadım. Ben de ayrı olarak yazdım ama şöyle bir sorunla karşılaştım bu sefer, sayı 10 dan büyük ama her değiştiğinde ses çalıyor. Benim yapmak istediğim belli bir değerin sadece altına indiğinde veya üstüne çıktığında bu sesin çalması. Böyle bir kod yazılabilir mi?

Yada sayı üzerinden değil A1 Hücresinde yazı yazdığında ses çal B1 hücresinde yazı yazdığında ses çal?

Bunlar mümkün müdür?
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba , siz zaten istediğiniz işlemleri yaptırabilmişsiniz sadece if sorgularında sıkıntı çekiyorsunuz anladığım kadarıyla , kodlarınızı yada dosyanızı paylaşırsanız yardımcı olunabilir.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ses dosyasını çalıştıran haliyle kodunuzun bu sorgu kısmı paylaşır mısınız
 
Katılım
16 Mayıs 2017
Mesajlar
14
Excel Vers. ve Dili
2016 c++
Merhaba , siz zaten istediğiniz işlemleri yaptırabilmişsiniz sadece if sorgularında sıkıntı çekiyorsunuz anladığım kadarıyla , kodlarınızı yada dosyanızı paylaşırsanız yardımcı olunabilir.
Ses dosyasını çalıştıran haliyle kodunuzun bu sorgu kısmı paylaşır mısınız

Kod:
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean

Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Function Beep2() As String

Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
Beep2 = ""

End Function

Function Beep1() As String

Call PlaySound("C:\Users\*\*\*\dusus.wav", 0, SND_ASYNC Or SND_FILENAME)

End Function
Bu da Exceldeki formül;

=EĞER(C5<=2,16;Beep2();EĞER(C5>=2,19;""))
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba , sayfanın kod bölümüne aşağıdaki kodları yapıştırıp deneyiniz..

A1 ve B1 hücresine değer girildiğinde çalışır.

Kod:
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B1")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Target.Column = 1 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "A1 hucresine yazi yazildi"
    ElseIf Target.Column = 2 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "B1 hucresine yazi yazildi"
    End If
    Application.EnableEvents = True
End Sub
 
Katılım
16 Mayıs 2017
Mesajlar
14
Excel Vers. ve Dili
2016 c++
Merhaba , sayfanın kod bölümüne aşağıdaki kodları yapıştırıp deneyiniz..

A1 ve B1 hücresine değer girildiğinde çalışır.

Kod:
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B1")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Target.Column = 1 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "A1 hucresine yazi yazildi"
    ElseIf Target.Column = 2 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "B1 hucresine yazi yazildi"
    End If
    Application.EnableEvents = True
End Sub
Tam aradığım kod yalnız ufak bir tıkanıklık yaşadım buraya yazmadan önce kendim çözmeye çalıştım fakat çözemedim. Şimdi bu hücrelerde formül yazılı olduğundan hücreler dolu olduğu için bildirim çalmıyor.

Tablonun mantığını hemen açıklayayım size;
A1 hücresinde =EĞER(C3<=3;"SAT";"")
B1 hücresinde =EĞER(C5>=4;"AL";"") yazıyor. C hücresindeki değere göre birinden biri yazılı hale geliyor diğer hücre içi boş oluyor. Fakat görünmeyen bir formül var tabi. Kodu aldığımda çalışıyor fakat yukarıdaki düzen kurulu olduğu için entegre edemedim maalesef.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Ozaman aşağıdaki gibi deneyin..

Kod:
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C3:C5")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Application.EnableEvents = False    
    If Target.Address = "$C$3" And Target.Value <= 3 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "C3 hucresine yazi yazildi"
    ElseIf Target.Address = "$C$5" And Target.Value >= 4 Then
        Call PlaySound("C:\Users\*\*\*\cikis.wav", 0, SND_ASYNC Or SND_FILENAME)
        MsgBox "C5 hucresine yazi yazildi"
    End If
    Application.EnableEvents = True
End Sub
 
Son düzenleme:

balkanboi

Altın Üye
Katılım
28 Aralık 2022
Mesajlar
8
Excel Vers. ve Dili
2016 versiyon
Altın Üyelik Bitiş Tarihi
30-01-2025
Merhabalar, yukarıdaki formülde
"If Target.Address = "$C$3" And Target.Value <= 3 Then" sayının büyüklüğüne/küçüklüğüne göre uyarı veren bir formül vardı. Bu formülü örneğin;
A1 hücresindeki değer B1 hücresindeki değerden %2 büyük yada küçükse,
A2 hücresindeki değer B2 hücresindeki değerden %2 büyük yada küçükse,
şeklinde 7 satırdan oluşan bir veride yukarıdaki sesli ve yazılı bildirimi nasıl yapabiliriz.
 

Ekli dosyalar

Üst