Skip to content

Detaylı Bilgi Alın

Form yükleniyor…



    Bilgileriniz bizimle güvende.

    IF KARAR YAPISI İLE ŞARTA GÖRE İŞLEMLER

    İÇİNDEKİLER

      Bu yazımızda sizlere; makro tarafında olmazsa olmaz bir karar/koşul yapısından bahsediyor olacağım. Yazının sonunda IF Karar yapısı nedir, ne zaman ve nasıl kullanılırı öğrenmiş olacağız.

       

      IF KARAR YAPISI NEDİR?

      Bu

      koşul yapısı; bütün programlama dillerinde olan, bazı şartların gerçekleşmesi veya gerçekleşmemesi durumunda ayrı-ayrı kod bloklarının çalıştırılmasına imkân veren yapıdır.

      Belirtilen koşuldan geri dönen True/False Boolean değerine göre işlemler yapabilmenizi sağlar.
      Eğer koşulun True Doğru olduğu söylenirse, belirtilen koşul(lar)ın altında bulunan ifadeler uygulanır.
      Koşulun False Yanlış olduğu söylenirse, IF yapısından sonra belirtilen ifadeler uygulanır. İlaveten, duruma göre Else veya ElseIF ifadelerini belirttiysek o satırların da kontrolünü sağlar ve ne zaman sonuç True dönerse orada belirtilen komutlar uygulanır.

       

      NE ZAMAN KULLANILIR? 

      Kod yazarken, Eğer ile başlayan bir düşüncemiz/şartımız varsa ve bir veya birden fazla şarta göre işlemler yaptırmak istiyorsak genellikle bu yapıyı kullanırız. Bu yapıdan başka birkaç Karar/Koşul yapısı daha mevcuttur, bunlar; Select Case, IIF, Choose ve Switch yapılarıdır. Bu yapılara da hâkim olmak kod yazarken sizi rahatlatacaktır.

       

      NASIL KULLANILIR?

      Öncelikle yazım kalıbı veya söz dizimi dediğimiz durumu, yani bu IF yapısını VBA tarafında nasıl yazabiliriz ona bir bakalım.

       

      YAZIM KALIBI

      Yazım kalıbı Syntax aşağıdaki gibidir..
      Mavi renkli kısımlar sabittir.
      Kırmızı renkli kısımlar değişkendir.

      If koşul(lar) Then
      ‘Kodlarınız
      End If

      Mantık olarak kabaca şöyle düşünebilirsiniz; “Eğer bu sayı 10’dan büyükse bunları yap.” gibi..

      Eğer tek bir koşulumuz şartımız varsa, yukarıdaki kalıbı bu şekilde de kullanabilirsiniz.
      If koşul(lar) Then ‘Kodlarınız
      Tek şart varsa, End If ifadesini kaldırıp, koşulu Then ifadesinin yanına yazabilirsiniz.
      If ve Then arasındaki koşulumuz da, duruma göre birden fazla olabilir.
      Yani örneğin; A sütunundaki hücrelerdeki sayılar 10‘dan büyükse ve boş değilse gibi, And, Or, Xor vb. Mantıksal operatörleri de kullanabilirsiniz.

      Şimdi bu kısmı tam olarak anlamanız için ufak bir kod örneği verelim..

      If sayi > 10 And sayi < 20 Then

      Tek bir If .. Then kalıbı arasında mantıksal operatörler kullanarak, koşulumuzu kendi içinde 2-3-4…’e çıkarabilirsiniz. Diyelim ki; A2:A10 hücre aralığında bazı sayılarımız var ve bu sayılardan 10‘dan büyük olanların B sütununa büyük ifadesini yazdıralım.

      Bunun için bize gerekli olan kodlar bu şekildedir;

      Sub IF_Kosul_Yapisi()
          For i = 2 To 10
              If Cells(i, "A") > 10 Then
                  Cells(i, "B") = "Büyük"
              End If
          Next i
      End Sub

      Bu kodların nasıl çalıştığını gif resimde görerek daha iyi anlayabilirsiniz.

      IF yapısı

       

      BİRDEN FAZLA KOŞUL VE ELSE

      Eğer birden fazla koşulumuz var ise ve mantık olarak, Eğer böyleyse bunu yap, değilse şunu yap gibi, iki farklı duruma göre işlem yapmak istiyorsanız, bunu da yine tek bir satırda bu şekilde yazabileceğiniz gibi;

      If Cells(i, "A") > 10 Then Cells(i, "B") = "Büyük" Else Cells(i, "B") = "Küçük"

      alt alta Else ifadesiyle birlikte de yazabilirsiniz. O zaman kalıbımız bu şekilde olacaktır.
      If koşul(lar) Then
      ‘Doğruysa Kodlarınız
      Else
      ‘Yanlışsa Kodlarınız
      End If

      Örnek kodlarımız..

      If Cells(i, "A") > 10 Then
          Cells(i, "B") = "Büyük"
              Else
          Cells(i, "B") = "Küçük"
      End If

      Yukarıdaki kod, 10‘dan büyük olan hücrelerin B sütununa Büyük, küçük olanların da B sütununa Küçük yazar.

       

      ELSEIF

      Şimdi de ElseIf DeğilseEğer ifadesini dahil ederek koşullarımızı artıralım.
      Bu kalıpta da mantığı kabaca şöyle düşünebilirsiniz; “Eğer bu böyleyse bunu yap, değilse eğer şöyleyse şunu yap, değilse eğer öyleyse onu yap.” gibi..

      Yazım Kalıbı bu şekildedir..
      If koşullar Then
      ‘kodlarınız
      ElseIf koşullar Then
      ‘kodlarınız
      ElseIf koşullar Then
      ‘kodlarınız
      End If

      Sonuc sütununa sonuçlarımızı bu şartlara göre yazdıralım.

      • Eğer sayı sıfıra eşitse Sıfır yazsın.
      • Eğer sayı 10’a eşitse Eşit yazsın.
      • Eğer sayı 10’dan küçükse Küçük yazsın.
      • Eğer sayı 10’dan büyükse Büyük yazsın.

      Belirttiğimiz bu şartlarımıza göre, bize gereken kodlar bu şekilde olacaktır..

      Sub Eger_Kosul_Yapısı_2()
          Dim i As Integer
          For i = 2 To Range("A65536").End(3).Row
              If Cells(i, "A") = 0 Then
                  Cells(i, "B") = "Sıfır"
              ElseIf Cells(i, "A") = 10 Then
                  Cells(i, "B") = "Eşit"
              ElseIf Cells(i, "A") < 10 Then
                  Cells(i, "B") = "Küçük"
              ElseIf Cells(i, "A") > 10 Then
                  Cells(i, "B") = "Büyük"
              End If
          Next i
      End Sub

      Bu kodları da gif resim üzerinde nasıl çalıştığını görerek daha net anlayabilirsiniz.

       

      ELSEIF ve ELSE BİRLİKTE

      Son olarak kodlarımıza, eğer yukarıda belirttiğimiz şartların hiçbirine uymuyorsa, o zaman End If satırından önce Else değilse ifadesi dahil edilerek, bu şekilde hücreye başka bir sonuç da yazdırılabilir.

      Sub Eger_Kosul_Yapısı_3()
          Dim i As Integer
          For i = 2 To Range("A65536").End(3).Row
              If Cells(i, "A") = 0 Then
                  Cells(i, "B") = "Sıfır"
              ElseIf Cells(i, "A") = 10 Then
                  Cells(i, "B") = "Eşit"
              ElseIf Cells(i, "A") < 10 Then
                  Cells(i, "B") = "Küçük"
              Else
                  Cells(i, "B") = "Büyük"
              End If
          Next i
      End Sub

       

      Daha fazla detay için Visual Basic’te Koşul Yapılarını buradan inceleyebilirsiniz.

       

      Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
      Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻