Temel Makro Formülleri: En Çok Kullanılan 50 Excel VBA Kodu (2026 Güncel)
1. Makro Nedir ve Neden Kullanılır?
Makro, Excel'de tekrarlayan görevleri otomatikleştiren VBA (Visual Basic for Applications) kodlarıdır. Makrolar sayesinde:
- ✅ Tekrarlayan işlemleri otomatikleştirebilirsiniz
- ✅ Hata oranını minimuma indirebilirsiniz
- ✅ Veri analizi ve raporlama işlemlerini hızlandırabilirsiniz
- ✅ Karmaşık hesaplamaları tek tıkla yapabilirsiniz
Makro Kaydetme vs Kod Yazma
Excel'de Makro Kaydet özelliği ile işlemlerinizi kaydedebilir veya VBA editörü ile manuel kod yazabilirsiniz. Gelişmiş işlemler için kod yazmak daha esnektir.
2. Makro Kategorileri ve Kullanım Alanları
Aşağıdaki tabloda, Excel VBA ile en çok kullanılan 50 temel makro formülü kategorilere ayrılmış olarak listelenmiştir. Her makronun üzerine tıklayarak ilgili sayfaya ulaşabilirsiniz.
| Kategori | Makronun İsmi | İlgili Fonksiyon |
|---|---|---|
| Sayma Makroları | Sayı Değerlerini Sayma VBA | WorksheetFunction.Count(Range) |
| Sayma Makroları | Dolu Hücreleri Sayma VBA | WorksheetFunction.CountA(Range) |
| Sayma Makroları | Boş Hücreleri Sayma VBA | WorksheetFunction.CountBlank(Range) |
| Sayma Makroları | Koşullu ve Çok Koşullu Sayma VBA | WorksheetFunction.CountIf(Range, Criteria) |
| Veri Bulma Makroları | Bir Sütundaki Son Dolu Satırı Bulma VBA | Cells(Rows.Count, "A").End(xlUp).Row |
| Veri Bulma Makroları | Bir Satırdaki Son Dolu Sütunu Bulma VBA | Cells(1, Columns.Count).End(xlToLeft).Column |
| Veri Bulma Makroları | Belirli Bir Değerin Satır Numarasını Bulma VBA | Range.Find(Value).Row |
| Veri Bulma Makroları | Belirli Bir Değerin Sütun Numarasını Bulma VBA | Range.Find(Value).Column |
| Veri Bulma Makroları | Bir Aralıktaki En Küçük Değeri Bulma VBA | Application.WorksheetFunction.Min(Range) |
| Veri Bulma Makroları | Bir Aralıktaki En Büyük Değeri Bulma VBA | Application.WorksheetFunction.Max(Range) |
| Veri Bulma Makroları | Düşeyara Fonksiyonu VBA | Application.WorksheetFunction.VLookup |
| Veri Bulma Makroları | Yatayara Fonksiyonu VBA | Application.WorksheetFunction.HLookup |
| Veri Bulma Makroları | Maksimum Değerin Satır Numarasını Bulma VBA | Range("A:A").Find(Application.WorksheetFunction.Max(Range)).Row |
| Veri Bulma Makroları | Bir Aralıktaki Tekrarlanan Değerleri Bulma VBA | Range("A1:A10").RemoveDuplicates Columns:=1, Header:=xlNo |
| Veri Bulma Makroları | Bir Aralıktaki En Büyük 2.Değer Bulma VBA | Application.WorksheetFunction.Large(Range, 2) |
| Analiz ve Matematik Makroları | Toplama Formülü VBA | Application.WorksheetFunction.Sum(Range) |
| Analiz ve Matematik Makroları | Koşullu ve Çok Koşullu Toplama Formülleri VBA | Application.WorksheetFunction.SumIf(Range, Criteria, SumRange) |
| Analiz ve Matematik Makroları | Ortalama Formülü VBA | Application.WorksheetFunction.Average(Range) |
| Analiz ve Matematik Makroları | TOPLAÇARPIM Formülü VBA | Application.WorksheetFunction.SumProduct(Range1, Range2) |
| Analiz ve Matematik Makroları | Trend Analizi VBA | Application.WorksheetFunction.Forecast(X, KnownY's, KnownX's) |
| Analiz ve Matematik Makroları | Grafik Oluşturma VBA | Charts.Add ve Chart.SeriesCollection.NewSeries |
| Metin Makroları | Başharfi Büyük Yapma VBA | Application.WorksheetFunction.Proper(Text) |
| Metin Makroları | Metin Birleştirme VBA | Range("A1").Value & " " & Range("B1").Value |
| Metin Makroları | Tüm Harfleri Büyük Harfe Çevirme VBA | UCase(Text) |
| Metin Makroları | Tüm Harfleri Küçük Harfe Çevirme VBA | LCase(Text) |
| Tarih Makroları | Geçerli Tarih ve Saati Yazma VBA | Now |
| Tarih Makroları | Bugünün Tarihini Yazma VBA | Date |
| Veri Düzenleme Makroları | Büyükten Küçüğe Sıralama Yapma VBA | Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlDescending |
| Veri Düzenleme Makroları | Küçükten Büyüğe Sıralama Yapma VBA | Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending |
| Veri Düzenleme Makroları | Aşağı Yuvarlama VBA | Application.WorksheetFunction.Floor(Number, Significance) |
| Veri Düzenleme Makroları | Yukarı Yuvarla VBA | Application.WorksheetFunction.Ceiling(Number, Significance) |
| Veri Düzenleme Makroları | Mutlak Değer VBA | Application.WorksheetFunction.Abs(Number) |
| Veri Düzenleme Makroları | Tekrarlanan Verileri Kaldırma VBA | Range.RemoveDuplicates Columns:=1, Header:=xlNo |
| Veri Düzenleme Makroları | Koşullu Biçimlendirme VBA | Range.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=10" |
| Veri Düzenleme Makroları | Boş Hücreye Değer Atama VBA | Range("A1").SpecialCells(xlCellTypeBlanks).Value = "Yeni Değer" |
| Sayfa Makroları | Hücre Seçme VBA | Range("A1").Select |
| Sayfa Makroları | Kopyala ve Yapıştır VBA | Range("A1").Copy Destination:=Range("B1") |
| Sayfa Makroları | Hücre İçeriğini Silme VBA | Range("A1").ClearContents |
| Sayfa Makroları | Boş Hücreleri Temizleme VBA | Range("A1:A10").SpecialCells(xlCellTypeBlanks).ClearContents |
| Sayfa Makroları | Yeni Bir Çalışma Sayfası Oluşturma VBA | Sheets.Add |
| Sayfa Makroları | Sayfa Silme VBA | Sheets("SayfaAdı").Delete |
| Sayfa Makroları | Sayfa Gizleme VBA | Sheets("SayfaAdı").Visible = False |
| Sayfa Makroları | Gizli Sayfayı Görünür Yapma VBA | Sheets("SayfaAdı").Visible = True |
| Sayfa Makroları | Sayfa Koruma VBA | Sheets("SayfaAdı").Protect |
| Sayfa Makroları | Sayfa Korumayı Kaldırma VBA | Sheets("SayfaAdı").Unprotect |
| Sayfa Makroları | Satır Ekleme VBA | Rows("2:2").Insert Shift:=xlDown |
| Sayfa Makroları | Satır Silme VBA | Rows("2:2").Delete Shift:=xlUp |
| Sayfa Makroları | Sütun Ekleme VBA | Columns("B:B").Insert Shift:=xlToRight |
| Sayfa Makroları | Sütun Silme VBA | Columns("B:B").Delete Shift:=xlToLeft |
Bu Tablo Ne Anlatıyor?
Yukarıdaki tabloda Excel VBA'da en çok kullanılan 50 temel makro, kategorilere ayrılmış olarak listelenmiştir. Her makronun ilgili fonksiyonu ve detaylı açıklama sayfasına link verilmiştir. Bu makroları öğrenerek Excel'de otomasyon konusunda uzmanlaşabilirsiniz.
3. En Çok Kullanılan Makro Örnekleri
Aşağıda, günlük iş akışında en sık kullanılan 3 temel makro örneğini detaylı olarak inceleyeceğiz.
🔹 Bir Sütundaki Son Dolu Satırı Bulma
Dim sonSatir As Long sonSatir = Cells(Rows.Count, "A").End(xlUp).Row MsgBox "A sütunundaki son dolu satır: " & sonSatir
Kullanım Alanı: Dinamik veri aralıklarında işlem yapmak için son satırı bulmak çok önemlidir. Özellikle döngülerle veri işlerken bu kod sıklıkla kullanılır.
🔹 Bir Aralıktaki En Büyük Değeri Bulma
Dim maxDeger As Double
maxDeger = Application.WorksheetFunction.Max(Range("A1:A10"))
MsgBox "En büyük değer: " & maxDeger
Kullanım Alanı: Veri setlerindeki maksimum değeri hızlıca bulmak için kullanılır. Raporlama ve analiz işlemlerinde sık tercih edilir.
🔹 Tüm Harfleri Büyük Harfe Çevirme
Range("A1").Value = UCase(Range("A1").Value)
Kullanım Alanı: Veri temizleme ve standartlaştırma işlemlerinde metinlerin büyük harfe çevrilmesi gerekir. Özellikle isim, şehir gibi verilerde kullanışlıdır.
🔹 Yeni Bir Çalışma Sayfası Oluşturma
Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = "YeniSayfa"
Kullanım Alanı: Raporlama ve veri yönetimi sırasında dinamik olarak yeni sayfalar oluşturmak için kullanılır. Otomasyon süreçlerinin vazgeçilmezidir.
Makro Kullanırken Dikkat
Makroları çalıştırmadan önce dosyanızı kaydetmeyi unutmayın. Ayrıca, makrolar .xlsm (Makro Etkin) dosya formatında kaydedilmelidir. Aksi takdirde makrolar çalışmaz.
4. Sıkça Sorulan Sorular
01 Excel'de makro nedir ve ne işe yarar?
Makro, Excel'de tekrarlayan görevleri otomatikleştiren VBA kodlarıdır. Veri analizi, raporlama ve formül uygulamalarını hızlandırır.
02 VBA ile bir hücreye değer nasıl atanır?
Range("A1").Value = "Değer" veya Range("A1") = "Değer" koduyla bir hücreye değer atayabilirsiniz.
03 Excel VBA'da son dolu satırı nasıl bulurum?
Cells(Rows.Count, "A").End(xlUp).Row kodu ile A sütunundaki son dolu satır numarasını bulabilirsiniz.
04 Makro ile bir aralıktaki en büyük değeri nasıl bulurum?
Application.WorksheetFunction.Max(Range("A1:A10")) kodu ile bir aralıktaki en büyük değeri bulabilirsiniz.
05 VBA'da sayfa nasıl gizlenir?
Sheets("SayfaAdı").Visible = False kodu ile bir çalışma sayfasını gizleyebilirsiniz.
06 Makro kaydetme ve çalıştırma nasıl yapılır?
Geliştirici sekmesi > Makro Kaydet seçeneği ile makro kaydedebilir, Makrolar butonu ile kaydettiğiniz makroları çalıştırabilirsiniz.