TOP
VBA-Ders 11.2. Çalışma Sayfası Etkinlikleri (Worksheet Etkinlikleri)
Önceki dersimizde kitabın tamamıyla ilgili olayları ele almıştık. Şimdi tek bir sayfayla ilgili olaylara odaklanacağız.
Worksheet_SelectionChange (Çalışma kitabını açma)
Tek bir çalışma sayfasına ilişkin olaya dayalı talimatları yürütmek için düzenleyicide çalışma sayfasını seçin ve ardından Worksheet:
SelectionChange olayı varsayılan olarak eklenecektir. Bu olay, aralığın içeriği değiştiğinde tetiklenir:
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
-
- End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Örneğin, aşağıdaki kod, seçilen bir veya daha fazla hücreye dolgu renkleri ekler ve bu aralık değiştiğinde, önceden seçilen aralıktaki dolgu rengini otomatik olarak kaldırır:
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Static previous_selection As String
-
- If previous_selection <> "" Then
-
- Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
- End If
-
-
- Target.Interior.Color = RGB(181, 244, 0)
-
-
- previous_selection = Target.Address
- End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static previous_selection As String
If previous_selection <> "" Then
'Önceki seçimden arka plan rengini kaldırma:
Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
End If
'Geçerli seçime arka plan rengi ekleniyor:
Target.Interior.Color = RGB(181, 244, 0)
'Geçerli seçimin adresini kaydetme:
previous_selection = Target.Address
End Sub
Worksheet_Activate (Sayfa etkinleştirme olayı)
Bu olay, bir çalışma sayfası etkinleştirildiğinde meydana gelir:
- Private Sub Worksheet_Activate()
-
- End Sub
Private Sub Worksheet_Activate()
End Sub
Worksheet_Deactivate (Sayfayı Devre Dışı Bırakma Etkinliği)
Bu olay, başka bir çalışma sayfası etkinleştirildiğinde meydana gelir:
- Private Sub Worksheet_Deactivate()
-
- End Sub
Private Sub Worksheet_Deactivate()
End Sub
Worksheet_BeforeDoubleClick (Hücredeki çift tıklama olayı)
Bu olay, bir çalışma sayfası hücresine çift tıklandığında meydana gelir:
- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
-
- End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Worksheet_BeforeRightClick (Sağ tıklamadan önceki etkinlik)
Bu olay, çalışma sayfasına sağ fare tıklamasından önce gerçekleşir:
- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
-
- End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Worksheet_Calculate (Çalışma Sayfası Hesaplama Etkinliği)
Bu olay, çalışma sayfasındaki veriler her hesaplandığında veya yeniden hesaplandığında meydana gelir:
- Private Sub Worksheet_Calculate()
-
- End Sub
Private Sub Worksheet_Calculate()
End Sub
Worksheet_Change (Hücre İçeriği Değiştirme Etkinliği)
Bu olay, belirli bir sayfadaki hücrelerin içeriği değiştiğinde meydana gelir:
- Private Sub Worksheet_Change(ByVal Target As Range)
-
- End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Worksheet_FollowHyperlink (Bağlantı tıklama etkinliği)
Bu olay, bir bağlantıya (köprü metni) tıklandığında meydana gelir:
- Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
-
- End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
End Sub
Tüm etkinlikleri geçici olarak devre dışı bırakın
Kodu herhangi bir olay olmadan çalıştırmak için kodu iki satır arasına şunun gibi ekleyin:
- Application.EnableEvents = False
-
- Application.EnableEvents = True
Application.EnableEvents = False '=> olayları devre dışı bırak
'Bazı talimatlar...
Application.EnableEvents = True '=> etkinlikleri yeniden etkinleştir