Çalışma Sayfası Olayları

Bu bölümde çalışma sayfası olayları hakkında çeşitli örnekler yapacağız.

Örnek: Aşağıdaki komut seçtiğimiz hücre içeriğini kırmızı yapar:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Font.Color = VBA.ColorConstants.vbBlack
    Target.Font.Color = VBA.ColorConstants.vbRed
End Sub
Not: Target değişkeninin Range (Aralık) olarak tanımlandığına dikkat edin. Kullanıcının seçtiği hücre veya aralık Target değişkenine aktarılır.
Örnek: Aşağıdaki komutla sadece A:D sütunları içinde bir değişiklik yaptığımızda, bu aralığa bağlı pivot tablo otomatik olarak yenilenir. Yapılan değişikliğin sadece A:D sütunları içinde olduğunu zaman geçerli olacağını belirtmek için Intersect fonksiyonu kullanılır:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns("A:D")) Is Nothing Then
Worksheets("PivotRapor").PivotTables("PivotTablo").PivotCache.Refresh
        MsgBox "pivot tablo yenilendi"
    End If
End Sub
Ek Bilgi: Aşağıdaki komut seçili hücrelerin B2:D9 aralığı ile kesişen hücrelerin adresini verir. Eğer kesişim yoksa hata vermez:
Sub makro_kesisim()
    Dim kesisim As Range
    Set kesisim = Excel.Intersect(Selection, Range("B2:D9"))
    If kesisim Is Nothing Then
        Exit Sub
    Else
        Debug.Print kesisim.Address
    End If
End Sub
Örnek: Eğer sadece bir hücrede değişiklik meydana geldiğinde olay çalıştırmak için aşağıdaki komutu kullanmak yeterlidir:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$2" Then
    Range("C2").Value = "Lütfen Seçiniz..."
End If

End Sub

Yayımlandı

kategorisi

yazarı:

Etiketler: