EXCEL VBA'DA AND FONKSİYONU

Excel VBA AND fonksiyonu nedir?

Excel VBA AND işlevi, birden fazla koşulun hepsinin TRUE olup olmadığını kontrol eder. Tüm koşullar doğru olduğunda TRUE, herhangi bir koşul yanlışsa FALSE döndürür. AND işlevini kullanmak için, kontrol edilecek koşulları listeleyin ve bunları VBA AND koşuluyla ayırın.

Örneğin, bir şirketin çalışanlarının 4 aylık bir kritere göre ikramiye almaya uygun olup olmadığını kontrol etmek istediğini varsayalım. Bu durumda, Excel VBA AND işlevi ayrıntıları kontrol edebilir ve girilen kriterlere göre TRUE veya FALSE döndürebilir. Aşağıda gösterildiği gibi, birden fazla koşulu aynı anda kontrol etmek için VBA AND işleviyle bir "If" ifadesi kullanın.

Bu kodu çalıştırdığınızda, tüm koşullar karşılandığı için TRUE olarak bir açılır mesaj döndürecektir. Kişinin bonus için geçerli olmak üzere o ay için hedef satışlardan daha fazla kazanıp kazanmadığını kontrol etmek için VBA AND işlevini kullanır.

Sözdizimi

AND fonksiyonunun kullanım sözdizimi aşağıda gösterildiği gibidir:

koşul 1 Ve koşul 2 Ve……. [koşul n]

Burada 'koşul 1' ve 'koşul 2' kontrol edilmesi gereken koşullardır.

VBA AND Fonksiyonu Nasıl Kullanılır?

VBA AND fonksiyonunu, Excel AND fonksiyonuna benzer şekilde, ilgili kodu VBA düzenleyicisini kullanarak yazarak kullanabilirsiniz . VBA AND fonksiyonunun VB Düzenleyicisi kullanılarak nasıl kullanılabileceğini açıklamak için aşağıdaki adımları kullanırız.

Adım 1: VBA düzenleyicisini kullanarak kod yazmak için araç çubuğundaki Geliştirici sekmesine tıklayın ve “Visual Basic“ seçeneğine tıklayın. Şimdi, VBA Düzenleyicisi açılır ve kişinin tercihlerine ve gerekli çıktıya göre yeni işlevler eklenir.

VBA Ve İşlevi - Kullanım - Adım 1

Adım 2: Üç sayıyı toplama örneğini ele alalım ve belirli koşullara göre bir çıktı yazdıralım. Bunun için Ekle sekmesine tıklayarak yeni bir modül ekleyelim > Modül'ü seçelim.

VBA Ve İşlevi - Kullanım - Adım 2

Adım 3: Üç sayının toplamını bulan add_num adında bir fonksiyon oluşturun.

VBA Ve İşlevi - Kullanım - Adım 3

Adım 4: Aşağıda gösterildiği gibi, üç sayının değerlerini ve sum_num değişkenini girerek toplamlarını bulun.

VBA Ve İşlevi - Kullanım - Adım 4

Adım 5: Toplamı kontrol etmek için koşulları girin ve bunları AND işlevini kullanarak bağlayın. Değerlendirmeye göre çıktıyı yazdırmak için If…Else koşulunu kullanın.

VBA Ve İşlevi - Kullanım - Adım 5

Kod:

Private Sub add_num()
a = 10
b = 15
c = 18
sum_num = a + b + c
If sum_num > 9 And sum_num < 100 Then
MsgBox “Two-digit sum.”
Else
MsgBox “Single-digit sum.”
End If
End Sub

Burada her iki koşul da sağlanıyorsa sonuç iki haneli, sağlanmıyorsa tek haneli olacaktır.

Adım 6: F5'e veya Çalıştır düğmesine basarak kodu çalıştırın. Rakamlar iki basamaklı bir toplama ulaştığından, aşağıdaki sonucu elde edersiniz.

VBA Ve İşlevi - Kullanım - Adım 6

Örnekler

VBA AND fonksiyonunu ve kullanımlarını anlamamıza yardımcı olacak birkaç örnek aşağıda verilmiştir.

Örnek 1

Bir girdinin cinsiyetini ve yaş grubunu bazı parametrelere göre belirleyen bir tabloyu ele alalım.

VBA ve Fonksiyon - Örnek 1

Yukarıdaki tabloda, Alt fonksiyonda tanımlanan “YaşGrubu1“, “YaşGrubu2“ ve “YaşGrubu3“ olmak üzere üç yaş grubu bulunmaktadır.

VBA ve Fonksiyon - Örnek 1 - yaş grupları

Adım 1: Kullanıcının yukarıdaki görüntüden girdileri nereye vereceğini biliyoruz. "Yaş" için "B2" hücresinde ve "Cinsiyet" için girdi "B1" hücresindedir.

VBA ve Fonksiyon - Örnek 1 - Adım 1

Adım 2: Verilen girdinin “E” mi “K” mi olduğunu ve verilen yaş grubunun “YaşGrubu1” mi olduğunu kontrol etmek için bir “Eğer” ifadesi oluşturun.

VBA ve Fonksiyon - Örnek 1 - Adım 2

Yukarıdaki kod girilen Cinsiyetin “F”, “M” olup olmadığını veya cinsiyet girilmediğini ve yaş grubunun AgeGroup1 olup olmadığını kontrol eder. Ardından, “MsgBox” fonksiyonu kelimeleri bir açılır kutuya yazdırır.

Adım 3: Bu faktörlere dayanarak, AND işlevi ve kullanımı kullanılarak basit bir VBA kodu oluşturulur. Sub Declare_Gender() görevindeki kodda, bu koşullara dayalı bir Mesaj Kutusu çıktısı yazdırmak için, "If" ifadesinde AND işlevi kullanılır.

VBA ve Fonksiyon - Örnek 1 - Adım 3

Adım 4: Tabloda verilen girdiler “F“ ve “AgeGroup1“ olup, burada Cinsiyet ve Yaş aralıkları tanımlanmıştır.

VBA ve Fonksiyon - Örnek 1

Adım 5: Bu kodu çalıştırmak için VBA editörünün üst kısmında yeşil üçgene benzeyen Çalıştır düğmesine basın.

VBA ve Fonksiyon - Örnek 1 - Adım 4

Adım 6: Bu kodu çalıştırdıktan sonra aşağıdaki çıktıyı alırız.

VBA ve Fonksiyon - Örnek 1 - Adım 5

Cevaplar “MsgBox” satırındaki yazı değiştirilerek özelleştirilebilir.

Adım 7: Girişleri değiştirerek farklı bir çıktı elde edersiniz. Örneğin, aşağıda verilen Cinsiyet'te bir girdi yoksa , aşağıdaki çıktıyı elde edersiniz.

VBA Ve Fonksiyon - Örnek 1 - Adım 6..jpg
VBA ve İşlev - Örnek 1 - Adım 6 - Çıktı

Örnek 2

Yalnızca her iki çıktı da 1 ise “TRUE” değerini döndüren, aksi takdirde “FALSE” değerini döndüren AND Boolean mantık kapısı için doğruluk tablosunu hesaplamamız gereken bir tabloyu ele alalım.

VBA ve Fonksiyon - Örnek 2

A ve B girdilerdir ve S sonuç çıktısıdır. Excel VBA düzenleyicisindeki AND ifadesini kullanarak, iç içe geçmiş bir IF ile iç içe geçmiş bir FOR döngüsüyle hızlı bir şekilde yapılabilir.

Adım 1: Araç çubuğundaki “Geliştirici“ bölümüne gidin ve “Visual Basic“ seçeneğine tıklayın. Şimdi, kişinin tercihlerine ve gerekli çıktıya göre yeni işlevler eklemek için VBA Editörü açılır.

VBA ve Fonksiyon - Örnek 2 - Adım 1

Adım 2: Bir alt prosedür oluşturun; aşağıda gösterildiği gibi Sub <procedure_name>() ile başlayın.

VBA ve Fonksiyon - Örnek 2 - Adım 2

Adım 3: Tablonun satır boyutu için iç içe geçmiş bir FOR döngüsü oluşturun. Bir FOR döngüsü tablonun aralığını dolaşmak için kullanılır ve diğer FOR döngüsü tabloda bulunan her hücreyi yinelemek için kullanılır.

VBA ve Fonksiyon - Örnek 2 - Adım 3

Burada, 'lastRow' tablonun sonuna kadar döngü yapmak için kullanılır ve 'i' aralıktaki her hücreyi yinelemek için kullanılır. Her iki değişkene de büyük sayıları depolayabildiği için "Long" veri türü atanır.

Adım 4: Sonra, 'lastRow' değişkeninin aralığı tanımlanır. Giriş sütunları “A“ ve “B“ olduğundan ve kontrol edilecek birden fazla sütun olduğundan, son aralığın değeri VBA Xlookup fonksiyonu (XlUp) kullanılarak tanımlanabilir.

VBA ve Fonksiyon - Örnek 2 - Adım 4

Burada, "A" sütunu, XlUp ( XLOOKUP excel fonksiyonu ) yardımıyla satır sayısıyla aralığı hesaplar ve satır sonu aralığıyla sonlanır . Alt prosedür oluşturulduktan sonra, tablonun dinamik olması ve birden fazla satır değeri tutması için yapılır .

 Adım 5: Şimdi 'lastRow' aralığındaki her hücreyi yinelemek için bir for döngüsü kullanın.

VBA ve Fonksiyon - Örnek 2 - Adım 5

Burada, yukarıda gösterildiği gibi, "A" ve "B"deki her iki değerin de 0'dan büyük olup olmadığını kontrol etmek için 'i' 2'den sonuna kadar yinelenir; koşul sağlanıyorsa, "C" sütunundaki hücre "TRUE" olarak yazdırılır. Sağlanmıyorsa, "FALSE" olarak yazdırılır.

Kodun tamamı şu şekildedir.

Sub andFunction()
Dim lastRow As Long
Dim i As Long
lastRow = Range(“A” & Rows.Count).End(xlUp).Row
For i = 2 To lastRow
If Range(“A” & i).Value > 0 And Range(“B” & i).Value > 0 Then
Range(“C” & i).Value = “TRUE”
Else
Range(“C” & i).Value = “FALSE”
End If
Next i
End Sub

Adım 6: VBA alt prosedürünü çalıştırmak için araç çubuğundaki VBA düzenleyicisinin üst kısmındaki yeşil oka tıklayın.

VBA ve Fonksiyon - Örnek 2 - Adım 6

Ortaya çıkan çıktı şu şekildedir:

VBA ve İşlev - Örnek 2 - Adım 6 - Çıktı

Örnek 3

Bu durumda, aynı sayfada verilen parametrelere göre bazı koşulları sağlayanlara kredi verildiğini göstermek için Kredi ve Borçlar hücresinin yeşil renkle boyanması gereken bir tabloyu ele alalım.

VBA ve Fonksiyon - Örnek 3

Verilen parametreler şu şekildedir:

VBA ve Fonksiyon - Örnek 3 - parametreler

Burada kredinin reddedilebilmesi için kredi tutarının 5500$'dan fazla, önceki borçların ise 2500$'dan fazla olması gerektiği görülmektedir.

Adım 1: Bunu çalıştırmak için, önce tabloya dönüştürmemiz gerekir; bu, tablodaki herhangi bir hücreye tıklayıp “Ctrl + T” tuşlarına basarak tabloya dönüştürülebilir. Bu, tablonun boyutunu soran bir açılır pencereyle sonuçlanacaktır.

VBA ve Fonksiyon - Örnek 3 - Adım 1

Adım 2: Gördüğünüz gibi Excel tablonun tam boyutunu otomatik olarak alıyor, ardından “Tablomda başlıklar var” onay kutusunu tıklayabilirsiniz.

Tabloya dönüştürüldüğünde şu şekilde görünecektir:

VBA ve Fonksiyon - Örnek 3 - Adım 2

Adım 3: Araç çubuğundaki “Geliştirici“ bölümüne gidin ve “Visual Basic“ seçeneğine tıklayın. Şimdi, kişinin tercihlerine ve gerekli çıktıya göre yeni işlevler eklemek için VBA Editörü açılır.

VBA ve Fonksiyon - Örnek 2 - Adım 1

Adım 4: İlk olarak, onaylanmış hücreleri yeşil, diğerlerini kırmızı renkle vurgulayan yeni bir Alt prosedür tanımlayın. Bunu yapmak için, aşağıda gösterildiği gibi Sub <procedure_name>() ile başlayarak bir alt prosedür oluşturun.

Örnek 3 - Adım 4

Adım 5: Değerin 5500'den büyük ve 9000'den küçük olup olmadığını kontrol eden bir "If" ifadesi oluşturun. Ancak tablo içinde dinamik olarak çalışması gerektiğinden, bir FOR döngüsü kullanıyoruz.

Tablonun uzunluğunu bulmak için herhangi bir rastgele hücreye tıklayın ve “=,” yazın ve resimde gösterildiği gibi işaretli alana (sütun hücre adı ile sütun başlığı arasında) tıklayarak sütunun değer aralığını bulun.

VBA ve Fonksiyon - Örnek 3 - Adım 5

Enter'a basıldığında #value hatası gösterilecektir .

VBA Ve Fonksiyon - Örnek 3 - Adım 5 - değer hatası

Tek bir hücre tüm değerleri depolayamaz, sadece aralığına ihtiyacımız var, bu da yukarıdaki görselde D14 hücresinde gösterilmiştir.

Örnek 3 - Adım 5 - Tablo

Adım 6: Benzer şekilde, yukarıda gösterildiği gibi "Kredi" sütunu için aralığı şu şekilde bulun:

Örnek 3 - Adım 6

Gerekli aralıklar bulunduğuna göre, şimdi IF ifadesini oluşturmaya devam edelim .

Adım 7: Excel VBA düzenleyicisinde bir “For” döngüsü ile başlayın.

Örnek 3 - Adım 7

Önceki adımlardan elde edilen tablonun aralığı için döngüyü çalıştırmak amacıyla Range fonksiyonunu kullanırız.

Adım 8: Değerin 5500 ile 9000 arasında olup olmadığını kontrol eden bir " If " koşulu yazın. Koşul doğruysa hücreyi kırmızıya boyayın. Değilse hücreyi yeşile boyayın.

Örnek 3 - Adım 8

Koşuldan sonra “Next” kelimesini eklemek, döngüyü yürütmek için önemlidir. Örneğin, yukarıdaki kodda, “hücre” tüm hücreler arasında döngü yapan ve Excel AND işlevi koşulunu kontrol eden değişkendir.

Ayrıca Excel VBA'da arka plan rengini ayarlamak için kullanılabilecek çeşitli renklere sahip bir renk kütüphanesi vardır:

Örnek 3 - Adım 8 - Renk kütüphanesi

Adım 9: Benzer şekilde, “Mevcut Aidatlar” için bir for döngüsü yazın ve hücreleri uygun şekilde renklendirin. Aidatlar 2500'den fazlaysa hücreyi kırmızıya, değilse yeşile boyarız.

Örnek 3 - Adım 9

Burada, “c”, “Mevcut Borçlar” sütun aralığındaki tüm hücreler arasında döngü yapan ve koşulu kontrol eden değişkendir.

Kodun tamamı şu şekildedir:

Sub declare_approval()
Dim cell As Range
For Each cell In Range(“Table1[Loan (in USD)]”)
If (cell.Value > 5500 And cell.Value <= 9000) Then cell.Interior.Color = VBA.ColorConstants.vbRed Else: cell.Interior.Color = VBA.ColorConstants.vbGreen End If Next For Each c In Range(“Table1[Existing Dues]”) If (c.Value > 2500) Then
c.Interior.Color = VBA.ColorConstants.vbRed
Else: c.Interior.Color = VBA.ColorConstants.vbGreen
End If
Next
End Sub

Adım 10: Kodu çalıştırmak için VBA düzenleyici araç çubuğundaki yeşil oka tıklayın.

Örnek 3 - Adım 10

Sonuç çıktısı şudur:

Örnek 3 - Adım 10 - Çıktı

Burada borcu 2500 dolardan fazla ve kredi tutarı 5500 ile 9000 dolar arasında olanların kredileri reddediliyor ve kırmızı renkle kodlanıyor, geri kalanların kredileri onaylanıyor ve yeşil renkle kodlanıyor.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...