Intersect Metodunu Kullan - Microsoft Excel


Intersect metodunun kullanım mantığını anlayabilmek için renklendirme mantığıyla çalışan iki örnek aşağıda verilmiştir.

Kod


Option Explicit

'--------------------------------------------------
'Örnek 1
'--------------------------------------------------
Sub IntersectKullanimi1()
    Dim secilen_alan As Range
    Dim hedef_alan As Range
    
    Range("A:Z").ClearFormats
    
    Set secilen_alan = Range("A1:D15")
    Set hedef_alan = Range("B3:B5")
    
    secilen_alan.Interior.Color = vbRed
    hedef_alan.Interior.Color = vbYellow
    
    If Intersect(secilen_alan, hedef_alan) Is Nothing Then
        Range("D10:E15").Interior.ColorIndex = 5
    ElseIf Not Intersect(secilen_alan, hedef_alan) Is Nothing Then
        Range("D10:E15").Interior.ColorIndex = 4
    End If
End Sub

'--------------------------------------------------
'Örnek 2
'--------------------------------------------------
Sub IntersectKullanimi2()
    Dim secilen_alan As Range
    Dim hedef_alan As Range
    
    Range("A:Z").ClearFormats
    
    Set secilen_alan = Range("A1:F15")
    Set hedef_alan = Range("C10:C20, E12:E28")

    secilen_alan.Interior.ColorIndex = 8
    hedef_alan.Interior.ColorIndex = 6
    
    If Intersect(secilen_alan, hedef_alan) Is Nothing Then
        Intersect(secilen_alan, hedef_alan).Interior.ColorIndex = 5
    End If
End Sub

Kod (Açıklamalı)


Option Explicit

Sub IntersectKullanimi1()
    Dim secilen_alan As Range
    Dim hedef_alan As Range
    
    '--------------------------------------------------
    'Renklendirme yapmadan önce verilen
    'alandaki biçimlendirmeleri temizliyoruz.
    '--------------------------------------------------
    Range("A:Z").ClearFormats
    
    '--------------------------------------------------
    'Bizim çalışacağımız alan ile (secilen_alan)
    'kesişim işleminin kontrolünün yapılacağı alanı
    '(hedef_alan) belirledik.
    '--------------------------------------------------
    Set secilen_alan = Range("A1:D15")
    Set hedef_alan = Range("B3:B5")
    
    '--------------------------------------------------
    'Seçilen alanı ve hedef alanı renklendiriyoruz.
    '--------------------------------------------------
    secilen_alan.Interior.Color = vbRed
    hedef_alan.Interior.Color = vbYellow
    
    '--------------------------------------------------
    'Kesişim (Intersect) durumunun olup
    'olmamasına göre işlem yap.
    '--------------------------------------------------
    If Intersect(secilen_alan, hedef_alan) Is Nothing Then
        
        '--------------------------------------------------
        'Eğer secilen_alan ile hedef_alan alanları kesişiyorsa
        'Range("D10:E15") aralığını mavi renk yap.
        '--------------------------------------------------
        Range("D10:E15").Interior.ColorIndex = 5
    ElseIf Not Intersect(secilen_alan, hedef_alan) Is Nothing Then
        
        '--------------------------------------------------
        'Eğer secilen_alan ile hedef_alan alanları kesişmiyorsa
        'Range("D10:E15") aralığını yeşil renk yap.
        '--------------------------------------------------
        Range("D10:E15").Interior.ColorIndex = 4
    End If
End Sub


Sub IntersectKullanimi2()
    Dim secilen_alan As Range
    Dim hedef_alan As Range
    
    '--------------------------------------------------
    'Renklendirme yapmadan önce verilen
    'alandaki biçimlendirmeleri temizliyoruz.
    '--------------------------------------------------
    Range("A:Z").ClearFormats
    
    '--------------------------------------------------
    'Bizim çalışacağımız alan ile (secilen_alan)
    'kesişim işleminin kontrolünün yapılacağı alanı
    '(hedef_alan) belirledik.
    '--------------------------------------------------
    Set secilen_alan = Range("A1:F15")
    Set hedef_alan = Range("C10:C20, E12:E28")
    
    '--------------------------------------------------
    'Seçtiğimiz alanın rengini belirledik.
    '--------------------------------------------------
    secilen_alan.Interior.ColorIndex = 8
    
    '--------------------------------------------------
    'Hedef alanın rengini belirledik.
    '--------------------------------------------------
    hedef_alan.Interior.ColorIndex = 6
    
    '--------------------------------------------------
    'Kesişim (Intersect) durumunun olup
    'olmamasına göre işlem yap.
    '--------------------------------------------------
    If Intersect(secilen_alan, hedef_alan) Is Nothing Then
        
        '--------------------------------------------------
        'Eğer secilen_alan ile hedef_alan
        'kesişiyorsa kesişen bölgeleri yeşil yap.
        '--------------------------------------------------
        Intersect(secilen_alan, hedef_alan).Interior.ColorIndex = 5
    End If
End Sub

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba