Seçilen Alanda Formül İçeren Hücreleri Listele - Microsoft Excel


Seçilen alanda formül içeren hücrelerin listesini formülü içeren hücrenin adresleriyle birlikte listeleyen VBA kodu alternatifidir.

Kod


Option Explicit

Sub SecilenAlandakiFormulleriAdresleriyleBirlikteListele()
    '--------------------------------------------------
    'Değişkenler
    '--------------------------------------------------
    Dim secilenAlan As Range
    Dim listeAlani  As Range
    Dim hucre       As Range
    Dim sayac       As Long
    
    '--------------------------------------------------
    'Ayarlamalar
    '--------------------------------------------------
    sayac = 1
    
    Set secilenAlan = Selection.SpecialCells(xlFormulas)
    Set listeAlani = Range("K1")
    
    listeAlani.CurrentRegion.ClearContents
    listeAlani.Value = "Formülün Bulunduğu Hücrenin Adresi"
    listeAlani.Offset(0, 1).Value = "Hücrenin İçerdiği Formül"
    
    '--------------------------------------------------
    'Listeleme İşlemi
    '--------------------------------------------------
    For Each hucre In secilenAlan
        listeAlani.Offset(sayac, 0).Value = hucre.Address
        listeAlani.Offset(sayac, 1).Value = "'" & hucre.Formula
        sayac = sayac + 1
    Next
    
    '--------------------------------------------------
    'Sütun Genişliğini Ayarlama İşlemi
    '--------------------------------------------------
    listeAlani.CurrentRegion.EntireColumn.AutoFit
End Sub

Kod (Açıklamalı)


Option Explicit

Sub SecilenAlandakiFormulleriAdresleriyleBirlikteListele()
    
    '--------------------------------------------------
    'İçindeki formülleri listelemek için seçeceğimiz
    'alanı atayacağımız değişken.
    '--------------------------------------------------
    Dim secilenAlan As Range
    
    '--------------------------------------------------
    'Hücre adreslerini ve formüllerini listelemek
    'için kullanılacak alanın başlangıç noktasını
    'atadığımız değişken.
    '--------------------------------------------------
    Dim listeAlani  As Range
    
    '--------------------------------------------------
    'Döngü için kullanılacak. Seçilen alandaki
    'her hücre için işlem yapacağız. Bu alandaki
    'her hücreyi "hucre" isimli değişkene
    'atayarak işlem yapacağız.
    '--------------------------------------------------
    Dim hucre       As Range
    
    '--------------------------------------------------
    'Listeleme işlemi için kullanılacak artırma sayacı.
    '--------------------------------------------------
    Dim sayac       As Long
    
    '--------------------------------------------------
    'Listeleme işlemi için kullanacağımız sayac
    'değişkenine başlangıç değeri atadık.
    '--------------------------------------------------
    sayac = 1
    
    '--------------------------------------------------
    'Seçilen alan için işlem yapmak istiyoruz.
    'Burada da formül içeren hücrelerle işlem
    'yapacağımızı belirtiyoruz.
    '--------------------------------------------------
    Set secilenAlan = Selection.SpecialCells(xlFormulas)
    
    '--------------------------------------------------
    'Hücre adreslerinin ve formüllerin listeleneceği
    'alan için bir referans noktası verdik. Listeleme
    'işlemi bu koda göre K1 hücresinden başlayacak
    'şekilde yapılacak.
    '--------------------------------------------------
    Set listeAlani = Range("K1")
    
    '--------------------------------------------------
    'Yeni listeleme işlemine başlamadan önce liste
    'alanını temizliyoruz.
    '--------------------------------------------------
    listeAlani.CurrentRegion.ClearContents
    
    '--------------------------------------------------
    'Liste alanında ilk satıra başlıkları yazdırıyoruz.
    'Referans noktası K1 hücresiydi. Buna göre
    'K sütununa hücre adreslerini yazdıracağız.
    'Bir sağına da hücredeki formülü yazdıracağız.
    'Offset metodunu bu amaçla kullandık.
    '--------------------------------------------------
    listeAlani.Value = "Formülün Bulunduğu Hücrenin Adresi"
    listeAlani.Offset(0, 1).Value = "Hücrenin İçerdiği Formül"
    
    '--------------------------------------------------
    'Seçilen alan için hücre içeren formülleri
    've adreslerini listeleyen döngüyü çalıştır.
    '--------------------------------------------------
    For Each hucre In secilenAlan
        
        '--------------------------------------------------
        'Hücrenin adresini yazdır.
        '--------------------------------------------------
        listeAlani.Offset(sayac, 0).Value = hucre.Address
        
        '--------------------------------------------------
        'Hücrenin formülünü yazdır.
        '--------------------------------------------------
        listeAlani.Offset(sayac, 1).Value = "'" & hucre.Formula
        
        '--------------------------------------------------
        'Sayacı artırıyoruz. Böylelikle mevcut satırın
        'üzerine yazmak yerine yeni boş satıra veri
        'yazdırıyoruz.
        '--------------------------------------------------
        sayac = sayac + 1
    Next
    
    '--------------------------------------------------
    'Sütun genişliğini hücrelerdeki içeriği
    'komple gösterecek şekilde yeniden ayarla.
    '--------------------------------------------------
    listeAlani.CurrentRegion.EntireColumn.AutoFit
End Sub

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