EXCEL VBA KODLARI: MUTLAKA KULLANMAK İSTEYECEĞİNİZ KODLAR

Excel VBA Nedir ve Ne İşe Yarar?

Gelişen teknolojiyle birlikte iş hayatında, eğitimde ve kişisel kullanımda veri işleme ve analiz ihtiyaçları artmaktadır. Microsoft Excel, yaygın olarak kullanılan güçlü bir elektronik tablo uygulamasıdır ve verileri düzenlemenin, analiz etmenin ve görselleştirmenin önemli bir aracıdır. Excel’in temel yetenekleri, kullanıcıların verileri hızlı ve kolay bir şekilde manipüle etmelerine ve çeşitli formüllerle analizler yapmalarına olanak tanır. Ancak, daha karmaşık işlemler için Excel’in sınırlamaları olabilir. İşte burada, Excel VBA’nın önemi devreye girer.

VBA Nedir?

VBA (Visual Basic for Applications), Microsoft tarafından geliştirilmiş bir programlama dilidir ve Office uygulamaları arasında Excel, Word, PowerPoint ve Access gibi birçok uygulamada kullanılabilir.

Excel’de VBA kullanmak, kullanıcıların makrolar ve özel işlevler oluşturmasına ve bu sayede Excel’in yeteneklerini genişletmesine imkan tanır. VBA, özellikle tekrarlayan işlemleri otomatikleştirmek, veri işleme süreçlerini hızlandırmak ve kapsamlı analizler yapmak için oldukça değerlidir.

EN ÇOK KULLANILAN EXCEL VBA KODLARI

İçindekiler Sayfası: Tüm Sayfaların Listesini Çıkararak Bağlantı Verme

Bu kodu kullanarak Excel’de tek tuşla içindekiler sayfası oluşturabilirsiniz. Diyelim ki 20 farklı sayfanız var ve bu sayfalara bir ana ekrandan kolayca gitmek istiyorsunuz. Ana ekranda ilgili sayfalara lbağlantı vermeniz gereken 20 farklı değer olmalı. İşte bu kodu çalıştırarak bir ana ekrana içindekiler sayfası konumlandırabilirsiniz.

Bu kodu uygulamak için;

  1. Çalışma kitabınızda yeni bir sayfa açın ve adını “data” olarak güncelleyiniz.
  2. Kodu çalıştırdığınızda data sayfasının A1 hücresinden başlayarak tüm sayfaların isimlerini bağlantılı bir şekilde ortaya koyacaktır.
'Excel içindekiler sayfası

Sub ListSheets()

Dim ws As Worksheet
Dim x As Integer

x = 1

Sheets("data").Range("A:A").Clear

For Each ws In Worksheets

   Sheets("data").Cells(x, 1).Select
   ActiveSheet.Hyperlinks.Add _
   Anchor:=Selection, Address:="", SubAddress:= _
   ws.Name & "!A1", TextToDisplay:=ws.Name
   x = x + 1

Next ws

End Sub

Excel VBA’de Belli bir Aralıktaki Değerlerden Sayfa Oluşturma

Bu kod ile Excel’de bir hücre aralığında bulunan değerlerden yeni sayfalar oluşturabilirsiniz. Bu kodu uygulamak için;

  1. Çalışma kitabınızda yeni bir sayfa açın ve adını “data” olarak güncelleyiniz.
  2. Data sayfasının a1:a10 aralığına istediğiniz değerleri giriniz.
  3. Kodu çalıştırdığınızda bu değerler dikkate alınarak 10 farklı sayfa oluşacaktır.
Sub YeniSayfalarOlustur()
    Dim dataSheet As Worksheet
    Dim newSheet As Worksheet
    Dim dataRange As Range
    Dim cell As Range
    
    ' Data sayfasını belirtin
    Set dataSheet = ThisWorkbook.Sheets("Data")
    ' Veri aralığını belirtin (A1:A10 gibi)
    Set dataRange = dataSheet.Range("A1:A10")
    
    For Each cell In dataRange
        If Not IsEmpty(cell.Value) Then
            ' Yeni sayfa oluşturun ve adını hücre değerine göre ayarlayın
            Set newSheet = ThisWorkbook.Sheets. _
            Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
            newSheet.Name = cell.Value
        End If
    Next cell
End Sub

Excel VBA’de Gizli Sayfaların Hepsini Tek Seferde Açmak

Bu kod ile Excelde gizlenmiş sayfaları tek seferde gösterebilirsiniz. Böylece tek tek sayfaları açmak için uğraşanıza gerek kalmaz.

Sub TumGizliSayfalariAc()
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.Visible = xlSheetHidden _
        Or ws.Visible = xlSheetVeryHidden _
        Then ws.Visible = xlSheetVisible
        End If
    Next ws
End Sub

Excel VBA’de Her Sayfaya Farklı Renk Atama (Gradyan Geçişli)

Bu kod ile Excel’de bulunan tüm sayfalara farklı bir renk atanır. Bu renkler birbirleri ile uyumludur ve gradyan bir geçiş sağlar.

Sub CalismaSayfasiRenklendirmeGradyan()
    Dim ws As Worksheet
    Dim colorStep As Double
    Dim colorRange As Double
    
    colorRange = 255 ' Renk aralığı (0-255)
    colorStep = colorRange / (Sheets.Count - 1)
    
    For Each ws In Worksheets
        Dim redValue As Integer
        Dim greenValue As Integer
        Dim blueValue As Integer
        
        redValue = colorStep * (ws.Index - 1)
        greenValue = colorRange - redValue
        blueValue = 128 ' Sabit bir mavi tonu
        
        ws.Tab.Color = RGB(redValue, greenValue, blueValue)
    Next ws
End Sub

Excel VBA – Bir Saniye Bekletme / Durdurma

Bu kod ile Excel’de yapılan iki işlem arasına 1 saniye bekletme ekleyebilirsiniz. Aşağıdaki örnek kodda A1’den A10’a kadar olan hücrelere 1’den 10’a kadar olan rakamları yazacak ve her rakam yazıldığında 1 saniye bekleyecektir:

Sub RakamYazdirma()
    
    For i = 1 To 10
        Range("A" & i).Value = i ' Rakamı yaz
        Application.Wait (Now + TimeValue("0:00:01")) ' 1 saniye bekle
    Next i
    
End Sub

Excel VBA – Belli Bir Sayfayı PDF Olarak Kaydetme

Excel VBA ile bir sayfayı PDF olarak kaydetmek için bu kod parçacığını kullanabilirsiniz.

Sub SayfayiPdfOlarakKaydet()

    Dim ws As Worksheet
    Dim dosyaYolu As String
    Dim dosyaAdi As String
    Dim pdfKaydet As String
    
    ' Hangi Sayfanın Çıktısını alak istiyorsunuz?
    ' PDF olarak kaydetmek istediğiniz sayfayı tanımlayın
    Set ws = ThisWorkbook.Sheets("SayfaAdi")
    
    ' Nereye Kaydolsun?
    ' Dosyanın kaydedileceği yolu belirleyin
    dosyaYolu = "C:\Users\salih\Downloads\"
    
    ' Hangi isimle kayıt olsun?
    ' Dosyanın adını belirleyin
    dosyaAdi = "Dosya Adini buraya giriniz"
    
    
    pdfKaydet = dosyaYolu & dosyaAdi & ".pdf"
    
    ' Sayfayı PDF olarak kaydedin
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfKaydet
    
    ' İşlem tamamlandığında kullanıcıya bilgi verin
    MsgBox "Sayfa PDF olarak başarıyla kaydedildi!", vbInformation
    
End Sub

Excel VBA – Bir Sayfadaki Son Dolu Olan Satırı Bulma / Tespit Etme

Excel VBA ile aktif sayfanın son dolu olan satır sayısını bulmak için bu kodu kullanabilirsiniz.

Sub Last_Row()

    Dim ws As Worksheet
    Dim lr As Integer
    Set ws = ThisWorkbook.ActiveSheet
    
    'Bu kod excel sayfasının en altındaki satırdan başlar ve yukarı çıkarak en son satırı bulur.
    lr = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    'Bu kod A1'den başlar ve en son satıra gider
    'lr = ws.Range("A1").End(xlDown).Row
    
    MsgBox "Son Satir: " & lr
    
End Sub

Birden Fazla Sayfayı Tek PDF’te Çıktı Alma

Excel’deki birden fazla sayfayı tek bir PDF olarak dışarı aktarmak isterseniz buradaki kod şablonunu kullanabilirsiniz.

Sub SaveSheetsAsPDF()
  
    ' Ekran güncellemelerini kapat
    Application.ScreenUpdating = False
   
    ' PDF 'in nereye hangi isimle kaydedileceğini belirle
    fileName1 = "C:\Users\salih\Downloads\pdf_adini_buraya_giriniz.pdf"
   
    ' Çıktı almak istediğiniz sayfa isimlerini buraya yazınız.
    Sheets(Array("Sayfa1", "Sayfa2", "Sayfa3")).Select
    
    ' PDF Olarak Çıktı Alma
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    fileName:=fileName1, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
          
    ' Ekran güncellemelerini aç
    Application.ScreenUpdating = True
   
    MsgBox "PDF dosyası başarıyla kaydedildi!"
    
End Sub

Şablonlarımıza da Göz atmak isterseniz Aşağıdaki linkleri kullanabilirsiniz;

Bizi Takip Edin👇

instagramyoutubelinkedintiktokfacebookudemytwitter