Excel Macro’su ile Sesli Uyarı Vermek
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
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