Excel'de belirli hücreler değiştiğinde makro nasıl çalıştırılır?

Özet

Microsoft Excel'de, yalnızca belirli bir sayfadaki bir hücreye veya şu anda açık olan herhangi bir sayfaya bir değer girildiğinde çağrılan bir makro oluşturabilirsiniz.

Ancak, Excel'in performansını yavaşlattığı için makroları gereksiz yere çağırmamanız gerektiğini unutmayın.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Pek çok durumda, makro yalnızca belirli sayıda hücrenin içine girilen değerlere (bu belgedeki "anahtar hücreler" olarak adlandırılır) sahip olduğunda çalıştırılmalıdır. Büyük bir makronun bir sayfanın hücresine her değer girişinde çalışmasını önlemek için ActiveCell'in anahtar hücrelerden biri olup olmadığını kontrol etmeniz gerekir. Bunu yapabilmek için, ActiveCell'deki Intersect yöntemini ve ActiveCell'in anahtar hücrelerden biri olduğunu doğrulamak için anahtar hücreleri içeren aralığı kullanın. ActiveCell anahtar hücrelerini içeren aralıktaysa, makroyu çağırabilirsiniz.

Visual Basic makrosunu oluşturmak için:

  1. Sheet1 sekmesine sağ tıklayın ve Kodu Göster'e tıklayın.

    Sheet1'in arkasındaki modül sayfası açılır.

  2. Modül sayfasına aşağıdaki kodu yazın:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
    
    ' The variable KeyCells contains the cells that will
        ' cause an alert when they are changed.
        Set KeyCells = Range("A1:C10")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
    
    ' Display a message when one of the designated cells has been 
            ' changed.
            ' Place your code here.
            MsgBox "Cell " & Target.Address & " has changed."
    
    End If
    End Sub
    
  3. Dosya menüsünde Kapat ve Microsoft Excel'e Dön'ü tıklatın.

Sheet1'de A1:C10 hücrelerine bir giriş yazdığınızda, bir ileti kutusu görüntülenir.