Excel Macro’su ile Sesli Uyarı Vermek

Excel

Excel

Bir arkadaşımın ricası üzerine çok uğraştığım bir konu oldu bu. Sağdan soldan kodları toparlayarak ufak da olsa istenen zor hareketi gerçekleştirdim. Öncelikle excel’de ses dosyası çalmak için sndPlaySound32 fonksiyonuna ihtiyacımız var ve bu dosya bilgisayarınızdaki winmm.dll dosyasını kullanıyor. Bunu sağlamak için önce Sayfa1 yazan sayfa sekmenize sağ tıklayın. View Code yada kodu görüntüle deyin. sonra modules klasörüne sağ tıklayarak bir module ekleyin ve aşağıdaki kodu yapıştırın.

Public Declare Function sndPlaySound32 _
    Lib "winmm.dll" _
    Alias "sndPlaySoundA" ( _
        ByVal lpszSoundName As String, _
        ByVal uFlags As Long) As Long

VBA Projectin içindeyken de Sheet1’e tıklayıp aşağıdaki kodu ekleyin. Ancak projenizi .xls uzantılı olarak kaydederseniz projenizin makrosu uçup gidecektir. Bunu engellemek için de çalışmanızı .xlsm uzantısı ile farklı kaydetmeniz gerekiyor. Peki bu kod ne yapıyor. G3:G16 ve C3:C16 hücreleri (tarih tipindedir) içinde bir değişiklik yapıldığında, eğer girilen tarihe 1 gün var ise, ses dosyası çalışıyor. Ayrıca isterseniz açıklama satırını kaldırarak msgbox ile de uyarı verebilirsiniz.

Sub Worksheet_Change(ByVal Target As Range)
    'Change cell address and value to suit

    If Not Intersect(Target, Me.[G3:G16,C3:C16]) Is Nothing Then
        If (DateDiff("d", DateTime.Now, Target.Value) = 1) Then
            Call PlaySound
            'MsgBox "Bir Gün Var"
        End If
    End If
End Sub
Sub PlaySound()
       If Application.CanPlaySounds Then
           'Substitute the path and filename of the sound you want to play
           Call sndPlaySound32("C:\temp\sound.wav", 0)
       End If
End Sub
Recent Posts
Comments
  • Tevfik Kurşun
    Cevapla

    Merhaba,
    Muhteşemsiniz. Çok yorulmuşsunuz. Ellerinize ve emeğinize sağlık.
    If (DateDiff(“d”, DateTime.Now, Target.Value) = 1) Then
    bu satırda,
    M6 da değişiklik olduğunda (M6 bir sayaç) 1 iken 2 oldu, 2 iken 3 oldu, gibi
    nasıl değişiklik yapmalıyım?
    Saygılarımla

Leave a Comment


*