Vba: bir hücre değeri değiştiğinde makro nasıl çalıştırılır
Belirli bir hücre değeri değiştiğinde bir makroyu çalıştırmak için VBA’da aşağıdaki sözdizimini kullanabilirsiniz:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
Bu özel örnek, A1 hücresinin değeri değiştiğinde MultiplyMacro adlı makronun çalışmasına neden olacaktır.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA kullanarak bir hücre değeri değiştiğinde makro çalıştırma
A1 ve B1 hücrelerindeki değerleri çarpan ve sonuçları C1 hücresinde görüntüleyen MultiplyMacro adında aşağıdaki makroyu oluşturduğumuzu varsayalım:
SubMultiplyMacro ()
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
End Sub
Örneğin, A1 hücresinde 12 değerinin ve B1 hücresinde 3 değerinin bulunduğunu varsayalım.
Bu makroyu çalıştırırsak aşağıdaki sonucu alırız:
Şimdi A1 hücresinin değeri değiştiğinde bu makroyu otomatik olarak çalıştırmak istediğimizi varsayalım.
Bunu yapmak için sayfa adına sağ tıklayıp ardından Kodu Göster’e tıklayabiliriz:
Açılan kod düzenleme penceresinde aşağıdaki kodu yapıştırabilirsiniz:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
Aşağıdaki ekran görüntüsü bunun pratikte nasıl yapılacağını göstermektedir:
Daha sonra VB editörünü kapatabiliriz.
Artık A1 hücresindeki değeri değiştirdiğimizde MultiplyMacro adlı makro otomatik olarak çalışacak ve A1 hücresindeki yeni değeri kullanarak çarpma işlemini gerçekleştirecek.
Örneğin A1 hücresinin değerini 10 olarak değiştirdiğimizi varsayalım. Değeri değiştirip Enter tuşuna bastığımızda makro çalışacaktır:
Makro, 10’u 3 ile çarpar ve sonucu C2 hücresinde görüntüler.
Not : Belirli bir aralıktaki bir hücre değiştiğinde makroyu çalıştırmak istiyorsanız aşağıdaki sözdizimini kullanabilirsiniz:
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(" A1:B1 ")) Is Nothing Then
Call MultiplyMacro
End If
End Sub
Bu , A1:B1 aralığındaki herhangi bir hücrenin değişmesi durumunda MultiplyMacro adlı makronun çalışmasına neden olacaktır.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir çalışma kitabındaki sayfaların sayısı nasıl sayılır?
VBA: Başka bir çalışma kitabından veri nasıl çıkarılır
VBA: Yeni sayfalar nasıl eklenir