EXCEL MAKRO ÖRNEKLERİ

Makro öğrenmenin en kısa yolu, çalışan küçük örnekleri okuyup kurcalamaktır. Bu sayfada iki gerçek makro var: biri tablo başlığını tek tuşla kurumsal biçime sokar, diğeri kaç satır olursa olsun listenin sonunu bulup toplam ekler. İkisi de indirilebilir .xlsm dosyasında çalışır hâlde; kodları VBA editöründe satır satır inceleyeceğiz.
Çalışma dosyasını indir (.xlsm) — 2 çalışan makro: BasligiBicimlendir + SonSatiraToplamEkleDosyayı açınca güvenlik şeridinde "İçeriği Etkinleştir" deyin; Alt+F8 ile iki makroyu da çalıştırabilirsiniz.
1. İki Makronun Kodu

Bir modülde birden çok makro alt alta yaşayabilir — her biri kendi Sub...End Sub bloğunda. Alt+F8 listesinde ikisi ayrı ayrı görünür ve bağımsız çalıştırılır:

2. Örnek 1: Başlığı Biçimlendir
BasligiBicimlendir üç satırla 1. satırı kurumsal başlığa çevirir: kalın yazı, lacivert dolgu (RGB(31, 78, 121)), beyaz yazı. Her yeni tabloda Giriş sekmesinde üç ayrı tıklama yerine tek makro — biçim standardınız da hiç şaşmaz. Rows(1) ifadesi "1. satırın tamamı" demektir; 2. satırı da kapsamak isterseniz Rows("1:2") yazılır.
3. Örnek 2: Son Satıra Toplam Ekle
SonSatiraToplamEkle daha akıllıca bir iş yapar — listenin kaç satır olduğunu kendisi bulur:
son = Cells(Rows.Count, 3).End(xlUp).Row— C sütununda en alttan yukarı çıkıp son dolu satırı bulur. Bu kalıp, VBA'nın en çok kullanılan tek satırıdır.Cells(son + 1, 3).Value = Application.Sum(...)— bulduğu satırın bir altına, 2. satırdan son satıra kadarki aralığın toplamını yazar.
Listeye 3 satır da ekleseniz 300 satır da, makro toplamı hep doğru yere koyar. Sabit adres (C5) yerine son satırı dinamik bulmak, makroyu her boyuttaki veriyle çalışır kılar — örnek makro ile gerçek araç arasındaki fark budur.
4. Örnekleri Kendinize Uyarlama
| İstediğiniz değişiklik | Dokunacağınız yer |
|---|---|
| Başka renk | RGB(31, 78, 121) değerlerini değiştirin (0-255 arası kırmızı, yeşil, mavi) |
| Başka sütunun toplamı | Cells(Rows.Count, 3) içindeki 3'ü sütun numarasıyla değiştirin (D için 4) |
| Toplam yerine ortalama | Application.Sum yerine Application.Average |
| İki işi tek tuşta | Yeni bir Sub açıp içine BasligiBicimlendir ve SonSatiraToplamEkle satırlarını alt alta yazın — makrolar birbirini çağırabilir |
Değişiklik yapıp bozarsanız panik yok: dosyayı yeniden indirirsiniz. Kodu Adımla (Alt+F8 > Adımla) ile satır satır izlemek, her satırın ekranda ne yaptığını gösterir — VBA öğrenmenin en hızlandırıcı alışkanlığı budur.
5. Üçüncü Örnek: PDF Basan Makro
İki makroyu kavradıysanız üçüncüsünü kendiniz yazabilirsiniz — aktif sayfayı tek tuşla PDF'e basan klasik:
Sub PdfKaydet() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ThisWorkbook.Path & "Rapor.pdf"End Sub
İki satırın işi: ExportAsFixedFormat sayfayı PDF'e çevirir, ThisWorkbook.Path dosyanın kendi klasörünü hedefler — PDF hep Excel dosyasının yanına düşer. Dosya adına tarih eklemek isterseniz "Rapor_" & Format(Date, "yyyy-mm-dd") & ".pdf" kalıbı her günün çıktısını ayrı saklar. Bu makroyu indirdiğiniz dosyaya kendiniz ekleyin: Alt+F11 > kod penceresinin en altına yazın — üç makrolu dosyanız ilk gerçek VBA pratiğiniz olur.
Özetle
İki küçük makro, VBA'nın iki temel kasını gösterir: sabit işi standartlaştırmak (başlık biçimi) ve değişken veriye uyum sağlamak (son satırı bulma). Kodları değiştirerek kendi rutininize uyarlayın; makronun ne olduğu ve güvenlik kuralları için makro nedir sayfası, sistemli VBA öğrenimi için Excel VBA eğitimi yol haritasıdır.
Sıkça Sorulan Sorular
Bu makro örneklerini kendi dosyamda nasıl kullanırım?
İndirdiğiniz .xlsm'de Alt+F11 ile kodu açıp Sub bloklarını kopyalayın; kendi dosyanızda Alt+F11 > Insert > Module deyip yapıştırın. Dosyanızı .xlsm olarak kaydetmeyi unutmayın — .xlsx makro saklamaz. Alt+F8 ile çalıştırırsınız.
Son dolu satırı bulan kod nasıl çalışıyor?
Cells(Rows.Count, 3).End(xlUp).Row — C sütununun en dibinden (1.048.576. satır) yukarı doğru ilk dolu hücreye 'zıplar' ve satır numarasını verir. Ctrl+Yukarı tuşunun kod karşılığıdır. Liste kaç satır olursa olsun çalıştığı için VBA'nın en çok kullanılan kalıbıdır.
RGB değerlerini nereden bulurum?
Excel'de Giriş > Dolgu Rengi > Diğer Renkler > Özel sekmesi her rengin Kırmızı-Yeşil-Mavi değerlerini gösterir; bu üç sayıyı RGB(r, g, b) içine yazarsınız. Örnekteki RGB(31, 78, 121) kurumsal lacivert tondur.
İki makroyu tek tuşla arka arkaya çalıştırabilir miyim?
Evet — makrolar birbirini adıyla çağırır. Yeni bir Sub açıp gövdesine alt alta BasligiBicimlendir ve SonSatiraToplamEkle yazmanız yeterli; bu 'ana makro' ikisini sırayla koşturur. Karmaşık otomasyonlar hep böyle küçük makroların zincirlenmesiyle kurulur.
Makro çalıştırdım ama hata verdi, ne yapmalıyım?
Hata penceresindeki Debug düğmesi sizi sorunlu satıra götürür (sarı vurgulu). En sık nedenler: etkin sayfanın beklenen tablo olmaması ve sütun numarasının verinize uymaması. Adımla (F8) ile satır satır ilerleyip hangi adımın patladığını görmek en hızlı teşhis yoludur.
Bu örneklerden sonra hangi makroları yazmalıyım?
Kendi rutininizi kaydedin: Makro Kaydedici açıkken her ay elle yaptığınız işlemi bir kez yapın, sonra üretilen kodu bu sayfadaki kalıplarla (son satırı bulma, RGB biçimleme) birleştirin. Gerçek ihtiyaçtan doğan makro, hazır listeden ezberlenen yüz makrodan daha öğreticidir.


