Genel Bakış
Makrolar (Macros), Excel'de yaptığınız bir dizi işlemi kaydedip tek komutla yeniden çalıştırmanızı sağlayan, VBA (Visual Basic for Applications) diliyle yazılmış küçük programlardır. Biçimlendirme, sıralama, veri temizleme, rapor hazırlama gibi her gün tekrarlanan işleri saniyeler içinde ve hatasız yapmanın en pratik yoludur. Bu sayfada makro kaydetmeyi, çalıştırma yollarını, makro güvenliğini, .xlsm biçimini, Kişisel Makro Çalışma Kitabı'nı, göreli başvuru kaydını ve sık karşılaşılan sorunların çözümlerini örneklerle öğreneceksiniz.
Bir makronun yapısı şöyledir:
Sub ile End Sub arasındaki satırlar makronun gövdesidir. Function ile başlayan yordam ise değer döndürür ve çalışma sayfasında formül gibi kullanılabilen özel işlev (UDF) yazmak için kullanılır.
Makro ile formül arasındaki fark önemlidir: formül hücre değişince kendiliğinden yeniden hesaplanır, makro ise siz çalıştırınca (ya da bir olay tetiklenince) bir kez çalışır. Makrolar şu işler için uygundur:
Önemli kısayollar:
İnternetten gelen dosyalar: Güncel Microsoft 365 ve Office sürümlerinde internetten indirilen ya da e-postayla gelen dosyalardaki makrolar varsayılan olarak engellenir ve kırmızı bir güvenlik çubuğu görünür. Dosyaya Windows Gezgini'nde sağ tıklayıp Özellikler penceresinde Engellemeyi kaldır (Unblock) kutusunu işaretlemeniz gerekir. Kaynağına güveniyorsanız bunu yapın; aksi halde dosyayı açmayın. Makrolarınızı dağıtacaksanız dijital imza kullanmak, alıcıların güven sorununu azaltır.
Performans için ayrıca hücreleri tek tek okuyup yazmak yerine aralığı bir kerede değişkene (dizi) alıp işlemeyi, tüm aralığa aynı anda değer ya da formül yazmayı tercih edin. Makro kendi içinde hata verip yarıda kalırsa ScreenUpdating kapalı kalabilir; hata yönetimiyle ayarları mutlaka eski haline getirin.
Makro çalıştıktan sonra başlık satırı koyu mavi zeminde beyaz ve kalın yazıyla ortalanır, tüm tablo kenarlık alır, fiyat ve tutar sütunları ondalıklı biçimle görünür ve sütunlar içeriğe göre genişler. Örneğin ilk satırın tutarı 294.000,00 olarak ondalıklı gösterilir. Makro sadece biçimi değiştirdiği için veriler ve formüller olduğu gibi kalır.
Makro çalıştığında satırlar maaş sütununa göre büyükten küçüğe dizilir; en yüksek maaşlı personel başlığın hemen altında yer alır. Sıralama tüm satırı birlikte taşıdığı için sicil no, ad soyad ve departman bilgileri doğru kişiyle eşleşmeye devam eder. Başlık satırı kalın yapıldığı için verilerden ayrışır.
Makro çalıştıktan sonra adların başındaki ve sonundaki boşluklar silinir, sözcükler arasındaki fazla boşluklar tek boşluğa iner ve iki boş satır listeden kalkar; kayıtlar aralıksız alt alta dizilir. Böyle bir veri temizliği makrosunu Kişisel Makro Çalışma Kitabı'na kaydederseniz her dosyada tek komutla kullanabilirsiniz.
Makro D sütununa her satır için kendi satırına bakan bir başarı formülü yazar; ilk temsilcinin oranı 112% olarak görünür. Formüller aralığa tek seferde yazıldığı için başvurular satır satır otomatik kayar. Altta Toplam satırı eklenir ve genel başarı oranı 100% olarak hesaplanır. Toplam satırı kalın yazılıdır ve üstünde ince bir çizgi vardır. Makronun yazdığı formüller normal formüllerdir; veriler değişince kendiliğinden güncellenir.
Mevcut stoku asgari düzeyin altında kalan ürünlerin (toner, dosya, defter ve ataç) bütün satırı açık kırmızı zeminde koyu kırmızı ve kalın yazıyla görünür; yeterli stoku olan ürünler normal kalır. Kural bir formüle dayandığı için C ya da D sütunundaki değerler değiştiğinde renkler kendiliğinden güncellenir; makroyu yeniden çalıştırmak gerekmez. Başlık satırı açık mavi dolguyla ayrışır.
Ortalama sütununun her hücresinde değerin yanında bir trafik ışığı belirir. Ortalaması 70 ve üzeri olanlar yeşil, 50 ile 70 arasında olanlar sarı, 50'nin altında olanlar kırmızı simge alır. Örneğin ilk öğrencinin ortalaması 81,5 olduğu için yeşil, üçüncü öğrencinin ortalaması 41,5 olduğu için kırmızı görünür. Eşikler makroda sayı olarak tanımlandığı için yüzde değil doğrudan puan değerine göre çalışır.
Makro 2. satırdan 9. satıra kadar Durum sütununa bakar. Durumu Gecikti olan üç görevin satırı açık kırmızı zeminde koyu kırmızı ve kalın yazıyla boyanır. Durumu Bitti olan görevlerin yazısı yeşile döner, Devam Ediyor olan satırlar olduğu gibi kalır. Bu renkler sabit biçimdir; durumu daha sonra değiştirirseniz makroyu yeniden çalıştırmanız gerekir. Anlık güncelleme gerekiyorsa koşullu biçimlendirme tercih edilmelidir.
Liste mavi tonlu şeritli bir Excel tablosuna dönüşür; başlıklar üzerinde süzgeç okları belirir, tablonun adı tblSiparis olur ve en altta Tutar sütununun toplamını gösteren bir toplam satırı eklenir. Tutarlar iki ondalıklı biçimle görünür, sütunlar içeriğe göre genişler ve ilk satır sabitlendiği için aşağı kaydırdığınızda başlıklar ekranda kalır. Tabloya yeni satır eklediğinizde toplam otomatik güncellenir.
Makro listenin sağındaki E:F sütunlarında üç bölgenin özetini kurar. Marmara'nın toplamı 30.850,00, Ege'nin toplamı 20.100,00, Akdeniz'in toplamı 10.050,00 olarak hesaplanır ve genel toplam 61.000,00 değerini verir. Başlık hücreleri açık mavi zeminde, genel toplam satırı kalın yazılıdır. Özet gerçek formüllerle kurulduğu için veri listesindeki tutarlar değişirse özet de otomatik güncellenir.
Makro, tablonun sağına 380 x 230 boyutunda kümelenmiş sütun grafik ekler. Grafiğin başlığı Aylık Satış Tutarı (TL), yatay eksen başlığı Ay, dikey eksen başlığı Satış (TL) olarak görünür; tek seri olduğu için gösterge kaldırılmıştır. Satış sütunu binlik ayraçla biçimlendiği için eksen değerleri okunaklıdır. Grafik tablodaki hücrelere bağlıdır; verileri değiştirdiğinizde grafik de kendiliğinden güncellenir.
Makro nedir ve nasıl çalışır
Makro, Excel'de yapabildiğiniz işlemlerin VBA diliyle yazılmış bir Sub yordamı olarak saklanmasıdır. Makroyu iki yolla oluşturabilirsiniz: Makro Kaydet ile yaptığınız adımları Excel'e kaydettirirsiniz ya da Visual Basic Düzenleyicisi'nde (VBE) kodu kendiniz yazarsınız. Kaydedilen makro bir modülde saklanır; her çalıştırışınızda aynı adımlar aynı sırayla, insan hatası olmadan ve çok daha hızlı uygulanır.Bir makronun yapısı şöyledir:
VBA
4 satır
Sub BaslikBicimle()
Range("A1:E1").Font.Bold = True
Range("A1:E1").Interior.Color = RGB(31, 78, 121)
End Sub
Makro ile formül arasındaki fark önemlidir: formül hücre değişince kendiliğinden yeniden hesaplanır, makro ise siz çalıştırınca (ya da bir olay tetiklenince) bir kez çalışır. Makrolar şu işler için uygundur:
- Tekrarlayan biçimlendirme: Her ay aynı rapor görünümünü vermek.
- Veri hazırlama: Sıralama, boşluk temizleme, boş satır silme, yinelenenleri ayıklama.
- Toplu işlemler: Yüzlerce sayfayı ya da dosyayı aynı kurala göre düzenlemek.
- Özel işlevler ve olaylar: Formülle çözülemeyen hesaplar, hücre değişince ya da dosya açılınca çalışan otomasyonlar.
Nerede bulunur
Makro komutlarının çoğu varsayılan olarak gizli olan Geliştirici (Developer) sekmesindedir. Sekmeyi açmak için:- Dosya > Seçenekler > Şeridi Özelleştir (File > Options > Customize Ribbon) yolunu izleyin.
- Sağdaki Ana Sekmeler listesinde Geliştirici kutusunu işaretleyip Tamam'a basın.
Önemli kısayollar:
- Alt+F8: Makro iletişim kutusunu açar; makroyu seçip çalıştırır, adım adım izler, düzenler ya da siler.
- Alt+F11: Visual Basic Düzenleyicisi'ni açar ve Excel ile düzenleyici arasında geçiş yapar.
- F5 ve F8 (düzenlede): F5 imlecin bulunduğu makroyu çalıştırır, F8 kodu satır satır ilerleterek izler.
- Esc ya da Ctrl+Break: Çalışan makroyu durdurmayı dener.
- Ctrl+harf: Makroya atadığınız kısayol tuşudur.
Makro kaydetme adım adım
Kayıt sırasında Excel yaptığınız her işlemi VBA koduna çevirir. Hızlı ve kolay bir başlangıçtır ama gereksiz tıklamalar da koda girer; bu yüzden kayıttan önce adımları planlayın.- Kaydı başlatın: Geliştirici > Kod > Makro Kaydet (Record Macro) komutuna tıklayın.
- Makro adı: Harfle başlamalı, boşluk ve noktalama içermemelidir (örneğin BaslikBicimle ya da Baslik_Bicimle). Hücre adresi gibi görünen adlar (örneğin AB12) kullanılamaz.
- Kısayol tuşu: İsteğe bağlıdır. Küçük harf Ctrl+harf, büyük harf Ctrl+Shift+harf anlamına gelir. Excel'in kendi kısayollarını (Ctrl+C gibi) geçersiz kılacağı için dikkatli seçin.
- Makroyu şuraya kaydet: Bu Çalışma Kitabı (This Workbook), Yeni Çalışma Kitabı (New Workbook) ya da Kişisel Makro Çalışma Kitabı (Personal Macro Workbook) seçeneklerinden birini seçin.
- Açıklama: Makronun ne yaptığını yazın; koda yorum satırı olarak eklenir.
- Tamam'a basın ve işlemleri yapın: Hücre seçin, biçim verin, sıralayın. Her adım kaydedilir.
- Kaydı Durdur: Geliştirici > Kod > Kaydı Durdur (Stop Recording) ile bitirin.
- Kodu inceleyin: Alt+F11 ile düzenleyiciyi açın, soldaki Proje bölmesinde Modules > Module1 altına bakın.
Makroyu çalıştırma yolları
Aynı makroyu farklı yollarla çalıştırabilirsiniz; hangisinin seçileceği kullanım sıklığına bağlıdır:- Makro iletişim kutusu: Alt+F8 tuşlarına basın, makroyu seçin ve Çalıştır'a tıklayın. Adım düğmesi makroyu satır satır izlemenizi, Seçenekler düğmesi kısayol tuşunu değiştirmenizi sağlar. Listede yalnız açık çalışma kitaplarının makroları görünür; Makroların bulunduğu yer kutusundan kapsamı seçebilirsiniz.
- Kısayol tuşu: Kayıt sırasında ya da sonradan Alt+F8 > Seçenekler ile atadığınız Ctrl+harf birleşimidir. Başka çalışma kitabında aynı kısayol varsa en son açılan çalışır.
- Form denetimi düğmesi: Geliştirici > Denetimler > Ekle > Form Denetimleri > Düğme (Insert > Form Controls > Button) ile sayfaya düğme çizin; açılan pencerede makroyu seçin. Düğmeye sağ tıklayıp Makro Ata ile değiştirebilirsiniz.
- Şekil ya da resim: Eklediğiniz herhangi bir şekle sağ tıklayıp Makro Ata (Assign Macro) derseniz şekil makro düğmesine dönüşür; logolu, renkli düğmeler için idealdir.
- Hızlı Erişim Araç Çubuğu ve şerit: Dosya > Seçenekler > Hızlı Erişim Araç Çubuğu bölümünde Komut Seç listesinden Makrolar'ı seçip makronuzu araç çubuğuna ekleyebilirsiniz. Şeridi özelleştirerek kendi sekmenize de koyabilirsiniz.
- Düzenleyiciden: Alt+F11 ile kodu açın, imleci makronun içine koyup F5'e basın.
- Olaylar: Workbook_Open dosya açılınca, Worksheet_Change hücre değişince, Worksheet_SelectionChange seçim değişince otomatik çalışır. Bu olay yordamları ilgili sayfa ya da ThisWorkbook modülüne yazılır.
Makro güvenliği ve Güvenilir Konum
Makrolar güçlü olduğu için kötü amaçlı yazılımların da yaygın aracıdır. Bu nedenle Excel makroları varsayılan olarak çalıştırmaz ve size sorar. Ayarlara Dosya > Seçenekler > Güven Merkezi > Güven Merkezi Ayarları > Makro Ayarları (File > Options > Trust Center > Trust Center Settings > Macro Settings) yolundan ya da Geliştirici sekmesindeki Makro Güvenliği düğmesinden ulaşırsınız:- Bildirim olmadan tüm makroları devre dışı bırak: Hiçbir makro çalışmaz, uyarı da çıkmaz.
- Bildirimle tüm makroları devre dışı bırak: Varsayılan ve önerilen ayardır. Dosya açılınca sarı çubuktaki İçeriği Etkinleştir (Enable Content) düğmesiyle makroyu o dosya için açarsınız.
- Dijital olarak imzalanmış makroları hariç tüm makroları devre dışı bırak: Yalnız güvendiğiniz yayımcının imzalı makroları çalışır.
- Tüm makroları etkinleştir: Önerilmez; her kodu uyarısız çalıştırır.
- VBA proje nesne modeline güvenilir erişim: Başka programların ya da makroların VBA projesini değiştirmesine izin verir; gerekmedikçe kapalı tutun.
İnternetten gelen dosyalar: Güncel Microsoft 365 ve Office sürümlerinde internetten indirilen ya da e-postayla gelen dosyalardaki makrolar varsayılan olarak engellenir ve kırmızı bir güvenlik çubuğu görünür. Dosyaya Windows Gezgini'nde sağ tıklayıp Özellikler penceresinde Engellemeyi kaldır (Unblock) kutusunu işaretlemeniz gerekir. Kaynağına güveniyorsanız bunu yapın; aksi halde dosyayı açmayın. Makrolarınızı dağıtacaksanız dijital imza kullanmak, alıcıların güven sorununu azaltır.
Dosya biçimleri ve Kişisel Makro Çalışma Kitabı
Dosya biçimleri: Standart .xlsx biçimi makro saklamaz. Makro içeren bir çalışma kitabını Dosya > Farklı Kaydet ile Excel Makro Etkin Çalışma Kitabı (*.xlsm) olarak kaydetmelisiniz. .xlsx olarak kaydetmeye çalışırsanız Excel makroların kaybolacağını söyleyen bir uyarı gösterir; Evet derseniz kodlar silinir. Diğer makro destekli biçimler şunlardır:- .xlsb: İkili çalışma kitabı; büyük dosyalarda daha küçük boyut ve hızlı açılış sağlar, makroları saklar.
- .xltm: Makro etkin şablon; her yeni dosyada aynı makroları taşımak için.
- .xlam: Eklenti dosyası; makroları birçok dosyada ortak kullanılabilir hale getirir ve Geliştirici > Eklentiler ya da Dosya > Seçenekler > Eklentiler ile yüklenir.
- .xls: Eski biçim; makroları saklar ama satır ve sütun sınırları eskidir.
- Makro kaydederken Makroyu şuraya kaydet kutusundan Kişisel Makro Çalışma Kitabı'nı seçin. Dosya yoksa Excel kendisi oluşturur.
- Excel'i kapatırken Değişiklikleri Kişisel Makro Çalışma Kitabı'na kaydetmek istiyor musunuz? sorusuna Kaydet deyin.
- Dosya Windows'ta kullanıcı profilinizdeki XLSTART klasörüne (genellikle AppData\Roaming\Microsoft\Excel\XLSTART) yazılır.
- Gizli olduğu için görmek istediğinizde Görünüm > Pencere > Göster (View > Window > Unhide) komutunu kullanın.
İleri teknikler ve performans
Kaydedilmiş bir makro çoğu zaman çalışır ama fazla tıklama ve Select satırı içerir. Düzenleyicide kodu sadeleştirerek hızlandırabilir ve esnek hale getirebilirsiniz:- Select ve Selection kullanmayın: Kayıttaki Range("A1").Select ve ardından Selection.Font.Bold = True yerine doğrudan Range("A1").Font.Bold = True yazın; kod kısalır, ekran hareket etmez.
- Değişken ve nesne kullanın: Dim ws As Worksheet ve Set ws = ActiveSheet ile sayfayı bir kez tanımlayın; kod okunur olur.
- Döngü ve koşul: For...Next, For Each ve If...Then ile satırları tek tek denetleyip koşula göre işlem yapabilirsiniz.
- Hata yönetimi: On Error Resume Next ve On Error GoTo ile beklenmedik durumlarda makronun çökmesini önleyin; ama hataları gizlemek yerine nedenini bulun.
- Dinamik aralıklar: Sabit adresler yerine son dolu satırı bulan Cells(Rows.Count, 1).End(xlUp).Row kalıbını kullanın; veri artsa da makro çalışır.
- Özel işlev (UDF): Function ile yazdığınız işlevi hücreye formül gibi yazabilirsiniz.
VBA
7 satır
Sub HizliIslem()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' islemler burada
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sürüm farkları ve sınırlar
- Excel 2016, 2019, 2021 ve Microsoft 365 (Windows): Makro kaydetme, VBE ve .xlsm desteği aynıdır. Fark, güvenlik tarafındadır: güncel sürümlerde internetten gelen dosyalardaki makrolar engellenir ve dosya özelliklerinden engelin kaldırılması gerekir.
- Excel for Mac: VBA ve makro kaydı vardır, ancak ActiveX denetimleri, Windows API çağrıları ve bazı COM nesneleri (CreateObject ile oluşturulanların çoğu) çalışmaz. Dosya yolları ve kısayollar da farklıdır.
- Excel Web: VBA makroları çalışmaz ve makro kaydedilemez. Makro içeren dosyayı masaüstü Excel'de açmalısınız. Web'deki karşılık Otomatikleştir (Automate) sekmesindeki Office Scripts'tir; bu özellik lisansa göre sunulur ve TypeScript tabanlıdır.
- Mobil uygulamalar: Telefon ve tablet uygulamaları makro çalıştırmaz.
- 32 ve 64 bit: Windows API çağıran eski kodlarda 64 bit Excel için PtrSafe ve LongPtr düzenlemesi gerekir.
- Sınırlar: Makro iptal edildiğinde yaptığı değişiklikler Geri Al (Ctrl+Z) ile geri alınamaz, çünkü makro geri alma geçmişini temizler. Aynı anda yalnız bir makro çalışır ve çalışırken Excel arayüzü yanıt vermeyebilir.
Neden çalışmıyor
Sık karşılaşılan sorunlar:- Belirti: Sayfanın üstünde sarı Güvenlik Uyarısı: Makrolar devre dışı bırakıldı çubuğu var. Neden: Güven Merkezi varsayılan olarak makroları durdurur. Çözüm: Kaynağa güveniyorsanız İçeriği Etkinleştir'e tıklayın ya da dosyayı Güvenilir Konum'a taşıyın.
- Belirti: Kırmızı çubukta makroların engellendiği yazıyor ve İçeriği Etkinleştir düğmesi yok. Neden: Dosya internetten ya da e-postadan geldi. Çözüm: Dosyayı kapatın, Gezgin'de sağ tıklayıp Özellikler > Engellemeyi kaldır kutusunu işaretleyin ve yeniden açın.
- Belirti: Makro iletişim kutusu boş ya da makro listede yok. Neden: Makro kapalı bir çalışma kitabında, Kişisel Makro Çalışma Kitabı'nda ya da farklı bir kapsamda. Çözüm: Makroların bulunduğu yer kutusundan Tüm açık çalışma kitapları'nı seçin; ilgili dosyayı açın.
- Belirti: Dosyayı kapatıp açınca makrolar yok. Neden: Dosya .xlsx olarak kaydedilmiş. Çözüm: Makro kaydedilmemişse geri dönüş yoktur; bundan sonra Farklı Kaydet ile .xlsm seçin.
- Belirti: Makrolar rastgele hücrelerde ya da hep aynı hücrede çalışıyor. Neden: Mutlak ya da göreli kayıt modu yanlış seçilmiş. Çözüm: Başlangıç hücresine göre çalışması için Göreli Başvuru Kullan açıkken yeniden kaydedin ya da kodu düzenleyin.
- Belirti: Kısayol tuşu çalışmıyor. Neden: Makronun bulunduğu dosya kapalı ya da başka bir makro aynı kısayolu kullanıyor. Çözüm: Alt+F8 > Seçenekler ile farklı bir tuş atayın.
- Belirti: PERSONAL.XLSB makroları görünmüyor. Neden: Dosya Excel tarafından devre dışı bırakılmış olabilir. Çözüm: Dosya > Seçenekler > Eklentiler > Yönet: Devre Dışı Bırakılmış Öğeler > Git yolundan yeniden etkinleştirin.
- Belirti: Çalışma zamanı hatası 1004. Neden: Sayfa korumalı, aralık adresi hatalı ya da sayfa gizli. Çözüm: Korumayı kaldırın, adresleri ve sayfa adını denetleyin.
- Belirti: Çalışma zamanı hatası 9 (dizin değer aralığın dışında). Neden: Kodda adı geçen sayfa ya da çalışma kitabı yok ya da yeniden adlandırılmış. Çözüm: Adı denetleyin ya da ActiveSheet kullanın.
- Belirti: Makro çok yavaş. Neden: Ekran yenileme, otomatik hesaplama ve Select satırları. Çözüm: ScreenUpdating ve Calculation ayarlarını kapatıp Select'leri kaldırın.
- Belirti: Excel Web'de ya da telefonda makro çalışmıyor. Neden: Bu ortamlar VBA'yı desteklemez. Çözüm: Dosyayı masaüstü Excel'de açın.
1. Başlık satırını biçimlendiren makro
Her ay aynı satış listesine aynı görünümü vermek en çok kaydedilen makro türüdür. Örnekte bölge, ürün, adet, birim fiyat ve tutar sütunları ham durumdadır. Makroyu Excel'de şöyle kaydedersiniz:- Geliştirici > Kod > Makro Kaydet düğmesine tıklayın, adı BaslikBicimle yazın, makroyu Bu Çalışma Kitabı'na kaydedin.
- A1:E1 başlıklarını seçin; kalın yapın, yazı rengini beyaz, dolgu rengini koyu mavi seçin ve ortalayın.
- D2:E7 aralığını seçip Giriş > Sayı grubundan binlik ayraçlı ve iki ondalıklı biçim verin.
- A1:E7 aralığına Giriş > Yazı Tipi > Kenarlıklar > Tüm Kenarlıklar uygulayın ve sütunları otomatik sığdırın (sütun başlıkları arasındaki çizgiye çift tıklayın).
- Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Bölge | Ürün | Adet | Birim Fiyat | Tutar |
| 2 | Marmara | Laptop | 12 | 24.500,00 | 294.000,00 |
| 3 | Ege | Telefon | 30 | 15.900,00 | 477.000,00 |
| 4 | İç Anadolu | Tablet | 18 | 8.750,00 | 157.500,00 |
| 5 | Akdeniz | Monitör | 25 | 5.400,00 | 135.000,00 |
| 6 | Karadeniz | Yazıcı | 9 | 4.200,00 | 37.800,00 |
| 7 | Doğu Anadolu | Klavye | 60 | 650,00 | 39.000,00 |
Satış RaporuExcelDepo v1.0.0
2. Veriyi sıralayan makro
Personel listesini maaşa göre büyükten küçüğe sıralamak, rapor öncesi tekrarlanan bir işlemdir. Sicil no, ad soyad, departman ve maaş bilgileri karışık sıradadır. Makro kaydıyla yapılışı:- Makro Kaydet ile MaasaGoreSirala adlı bir makro başlatın.
- Liste içinde herhangi bir hücreyi seçin; Veri > Sırala ve Filtre Uygula > Sırala (Data > Sort) komutunu açın.
- Verilerimin üst bilgileri var kutusunu işaretleyin, Sırala ölçütü olarak Maaş, düzen olarak Büyükten Küçüğe seçin ve Tamam'a basın.
- Başlık satırını kalın yapın ve Kaydı Durdur'a tıklayın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sicil No | Ad Soyad | Departman | Maaş |
| 2 | 1005 | Zeynep Arslan | Bilgi İşlem | 61.000 |
| 3 | 1008 | Hasan Öztürk | Bilgi İşlem | 57.300 |
| 4 | 1002 | Mehmet Demir | Satış | 52.000 |
| 5 | 1007 | Elif Aydın | Satış | 48.900 |
| 6 | 1003 | Fatma Kaya | İnsan Kaynakları | 45.750 |
| 7 | 1004 | Ali Çelik | Üretim | 41.200 |
| 8 | 1001 | Ayşe Yılmaz | Muhasebe | 38.500 |
| 9 | 1006 | Mustafa Şahin | Lojistik | 36.800 |
Personel ListesiExcelDepo v1.0.0
3. Boşlukları ve boş satırları temizleyen makro
Dışarıdan aktarılan listelerde adların başında ve sonunda fazladan boşluklar, arada da tamamen boş satırlar bulunabilir. Bu makro her hücreyi temizler ve boş satırları siler. Kaydı sırasında şu adımları izleyin:- Makro Kaydet ile ListeyiTemizle makrosunu başlatın.
- Yardımcı bir sütuna KIRP işleviyle temizlenmiş değerleri yazın, değerleri kopyalayıp özgün aralığa Özel Yapıştır > Değerler ile yapıştırın ve yardımcı sütunu silin.
- Boş satırlar için Giriş > Bul ve Seç > Özel Git > Boşluklar komutuyla boş hücreleri seçin, Giriş > Hücreler > Sil > Sayfa Satırlarını Sil deyin.
- Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Müşteri | Şehir | Telefon |
| 2 | Ayşe Yılmaz | İstanbul | 0532 111 22 33 |
| 3 | Mehmet Demir | Ankara | 0533 222 33 44 |
| 4 | Fatma Kaya | İzmir | 0535 333 44 55 |
| 5 | Ali Çelik | Bursa | 0536 444 55 66 |
| 6 | Zeynep Arslan | Konya | 0537 555 66 77 |
| 7 | Emre Aydın | Adana | 0538 666 77 88 |
Müşteri ListesiExcelDepo v1.0.0
4. Göreli formül yazan ve toplam ekleyen makro
Satış temsilcilerinin hedef ve gerçekleşen tutarları verilmiş; makro her temsilci için başarı oranını hesaplayan formülü yazar ve altına toplam satırı ekler. Kayıt sırasında göreli başvuruyu şöyle kullanırsınız:- Geliştirici > Kod > Göreli Başvuru Kullan düğmesini açın, ardından D2 hücresini seçip Makro Kaydet ile BasariHesapla makrosunu başlatın.
- D2 hücresine şu formülü yazın:
=C2/B2
- Formülü D7'ye kadar kopyalayın, D2:D8 aralığına Yüzde biçimi verin.
- A8'e Toplam yazın, B8 ve C8'e TOPLA ile toplamları, D8'e başarı oranını yazın, satırı kalın yapın.
- Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Temsilci | Hedef | Gerçekleşen | Başarı |
| 2 | Ahmet Koç | 120.000 | 134.000 | 112% |
| 3 | Seda Yıldız | 150.000 | 121.500 | 81% |
| 4 | Murat Erdem | 90.000 | 99.000 | 110% |
| 5 | Gül Tekin | 110.000 | 104.500 | 95% |
| 6 | Can Polat | 130.000 | 156.000 | 120% |
| 7 | Burcu Özkan | 100.000 | 87.000 | 87% |
| 8 | Toplam | 700.000 | 702.000 | 100% |
Hedef TakipExcelDepo v1.0.0
5. Kritik stoku kırmızıya boyayan makro
Mevcut stok asgari stok düzeyinin altına indiğinde satırın kırmızı görünmesini istiyorsunuz. Bu iş makro ile bir koşullu biçim kuralı eklenerek yapılır. Makro kaydıyla yapılışı:- Makro Kaydet ile KritikStokuVurgula makrosunu başlatın ve A2 hücresini seçin.
- A2:D9 aralığını seçin; Giriş > Stiller > Koşullu Biçimlendirme > Yeni Kural > Biçimlendirilecek hücreleri belirlemek için formül kullan (Conditional Formatting > New Rule) yolunu izleyin.
- Formül kutusuna şunu yazın:
=$C2<$D2
- Biçimlendir düğmesiyle açık kırmızı dolgu, koyu kırmızı ve kalın yazı seçin, ardından Tamam'a basın.
- Başlık satırına mavi dolgu verip Kaydı Durdur deyin.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ürün | Depo | Mevcut | Asgari |
| 2 | A4 Kağıt | Merkez | 120 | 100 |
| 3 | Toner | Merkez | 4 | 10 |
| 4 | Zımba | Şube 1 | 35 | 20 |
| 5 | Dosya | Şube 1 | 8 | 25 |
| 6 | Kalem | Merkez | 250 | 200 |
| 7 | Defter | Şube 2 | 15 | 30 |
| 8 | Silgi | Şube 2 | 60 | 40 |
| 9 | Ataç | Merkez | 5 | 12 |
Stok TakipExcelDepo v1.0.0
6. Simge kümesi ekleyen makro
Okul notlarında ortalamaya göre trafik ışığı simgesi göstermek, sonuçları bir bakışta okutur. Örnekte matematik ve fizik notları ile bir ortalama formülü vardır. Makro kaydıyla yapılışı:- Makro Kaydet ile NotSimgesiEkle makrosunu başlatın.
- D2:D9 aralığını seçin ve Giriş > Stiller > Koşullu Biçimlendirme > Simge Kümeleri > Şekiller > Üç Trafik Işığı (Kenarlıksız) seçeneğini uygulayın.
- Koşullu Biçimlendirme > Kuralları Yönet > Kuralı Düzenle ile yeşil için 70 ve üzeri, sarı için 50 ve üzeri değer ölçütünü girin; tür olarak Sayı seçin.
- Başlık satırını kalın yapıp Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Öğrenci | Matematik | Fizik | Ortalama |
| 2 | Burak Aksoy | 85 | 78 | 81,5 |
| 3 | Selin Kara | 62 | 58 | 60,0 |
| 4 | Deniz Uçar | 45 | 38 | 41,5 |
| 5 | Gökhan Bal | 90 | 94 | 92,0 |
| 6 | Merve Tan | 55 | 68 | 61,5 |
| 7 | Emre Sezer | 30 | 42 | 36,0 |
| 8 | Cansu Eren | 72 | 66 | 69,0 |
| 9 | Kerem Duman | 48 | 52 | 50,0 |
Not ÖzetiExcelDepo v1.0.0
7. Döngüyle koşula göre satır boyayan makro
Durum sütununda Gecikti yazan görevlerin satırını kırmızıya, Bitti yazanları yeşil yazıya çevirmek için döngülü bir makro uygun olur. Koşullu biçimin aksine renk sabit uygulanır; durum değişse bile makroyu yeniden çalıştırmadıkça güncellenmez. Yapılışı:- Durum sütununa Veri > Sırala ve Filtre Uygula > Filtre uygulayın.
- Makro Kaydet ile GecikenleriBoya makrosunu başlatın; Durum süzgecinden yalnız Gecikti'yi seçin, görünen satırları seçip kırmızı dolgu ve kalın yazı verin.
- Süzgeci temizleyip Bitti için yazı rengini yeşil yapın ve Kaydı Durdur deyin.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Görev | Sorumlu | Bitiş | Durum |
| 2 | Veri tabanı yedekleme | Kerem | 10.03.2025 | Bitti |
| 3 | Ağ altyapısı yenileme | Selin | 05.03.2025 | Gecikti |
| 4 | Web sitesi tasarımı | Deniz | 15.04.2025 | Devam Ediyor |
| 5 | Bütçe raporu | Ayşe | 20.03.2025 | Gecikti |
| 6 | Personel eğitimi | Mehmet | 02.05.2025 | Devam Ediyor |
| 7 | Stok sayımı | Fatma | 28.03.2025 | Bitti |
| 8 | Tedarikçi sözleşmeleri | Ali | 28.02.2025 | Gecikti |
| 9 | Müşteri anketi | Zeynep | 30.04.2025 | Devam Ediyor |
Proje TakipExcelDepo v1.0.0
8. Tablo oluşturan ve bölmeleri dondurup toplam ekleyen makro
Ham sipariş listesini her seferinde tabloya dönüştürmek, stil vermek, toplam satırı eklemek ve başlığı sabitlemek için tek bir makro kaydedebilirsiniz. Kayıtta şu adımları izleyin:- Makro Kaydet ile TabloYap adlı makroyu başlatın.
- Liste içinde bir hücreyi seçin ve Ctrl+T tuşlarına basarak Tablo Oluştur (Create Table) penceresinde Tablomda üst bilgiler var kutusunu işaretleyin.
- Tablo Tasarımı (Table Design) sekmesinden bir stil seçin ve Toplam Satırı kutusunu işaretleyin; Tutar sütununun toplamını seçin.
- A2 hücresini seçin ve Görünüm > Pencere > Bölmeleri Dondur > Üst Satırı Dondur komutunu uygulayın.
- D sütununa sayı biçimi verip sütunları sığdırın, Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sipariş No | Müşteri | Şehir | Tutar |
| 2 | SP-1001 | Yıldız Market | İstanbul | 12.450,50 |
| 3 | SP-1002 | Güneş Kırtasiye | Ankara | 3.280,00 |
| 4 | SP-1003 | Deniz Eczanesi | İzmir | 5.675,75 |
| 5 | SP-1004 | Anadolu Gıda | Konya | 18.900,00 |
| 6 | SP-1005 | Ege Tekstil | Denizli | 9.320,25 |
| 7 | SP-1006 | Marmara Yapı | Bursa | 14.780,00 |
| 8 | SP-1007 | Akdeniz Turizm | Antalya | 7.410,00 |
| 9 | SP-1008 | Karadeniz Balık | Trabzon | 6.235,40 |
| 10 | Total | )]78.051,90 |
Sipariş TablosuExcelDepo v1.0.0
9. Bölge özeti çıkaran makro
Ham satış listesinden bölge bazında toplam çıkarmak çok yapılan bir rapor işidir. Makro, listenin sağında bir özet tablosu kurar. Kayıt sırasında şu adımları izleyin:- Makro Kaydet ile BolgeOzetiCikar makrosunu başlatın.
- E1 ve F1 hücrelerine başlıkları, E2:E4 hücrelerine bölge adlarını yazın.
- F2 hücresine bölge toplamını veren ETOPLA formülünü yazın ve F4'e kadar kopyalayın:
- E5'e Genel Toplam yazın, F5'e TOPLA ile genel toplamı alın, başlık ve toplam satırlarını kalın yapıp Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Bölge | Ürün | Tutar | Bölge | Toplam Tutar | |
| 2 | Marmara | Laptop | 24500 | Marmara | 30.850,00 | |
| 3 | Ege | Telefon | 15900 | Ege | 20.100,00 | |
| 4 | Akdeniz | Tablet | 8750 | Akdeniz | 10.050,00 | |
| 5 | Marmara | Monitör | 5400 | Genel Toplam | 61.000,00 | |
| 6 | Ege | Yazıcı | 4200 | |||
| 7 | Akdeniz | Klavye | 1300 | |||
| 8 | Marmara | Fare | 950 |
Bölge ÖzetiExcelDepo v1.0.0
10. Grafik oluşturan makro
Aylık satış tablosundan her ay aynı biçimde sütun grafik hazırlamak için makro kaydedebilirsiniz. Kayıt adımları:- Makro Kaydet ile GrafikOlustur makrosunu başlatın.
- A1:B7 aralığını seçin ve Ekle > Grafikler > Sütun veya Çubuk Grafik Ekle > Kümelenmiş Sütun (Insert > Charts > Clustered Column) seçeneğini uygulayın.
- Grafik Tasarımı > Grafik Öğesi Ekle (Chart Design > Add Chart Element) menüsünden grafik başlığını ve eksen başlıklarını ekleyin; başlığı Aylık Satış Tutarı (TL) olarak yazın.
- Gösterge gerekmediği için silin, grafiği tablonun sağına sürükleyin ve Kaydı Durdur'a basın.
Makrolar
Formülünü incelemek için bir hücre seçin.| A | B | |
|---|---|---|
| 1 | Ay | Satış (TL) |
| 2 | Ocak | 125.000 |
| 3 | Şubat | 98.000 |
| 4 | Mart | 143.000 |
| 5 | Nisan | 167.500 |
| 6 | Mayıs | 152.000 |
| 7 | Haziran | 189.000 |
Aylık SatışExcelDepo v1.0.0
Kullanırken dikkat edin
- Önce yedek alın: Makro ile yapılan değişiklikler Geri Al (Ctrl+Z) ile geri alınamaz; çünkü makro çalışınca geri alma geçmişi silinir. Yeni ya da başkasından aldığınız bir makroyu önce dosyanın bir kopyasında deneyin.
- Dosyayı .xlsm olarak kaydedin: Makro içeren dosyayı .xlsx olarak kaydederseniz kodlar kalıcı olarak silinir. Dosya > Farklı Kaydet'te Excel Makro Etkin Çalışma Kitabı (*.xlsm) türünü seçin; dosya çok büyükse .xlsb de seçenektir.
- Kaynağı bilinmeyen makroyu çalıştırmayın: Makrolar dosya sistemine erişebilir; zararlı kod yazılımların yaygın yoludur. İnternetten gelen dosyalarda İçeriği Etkinleştir'e basmadan önce göndericiye ve dosyanın kaynağına güvendiğinizden emin olun. Mümkünse Alt+F11 ile kodu gözden geçirin.
- Makro Güvenliği ayarını koruyun: Tüm makroları etkinleştir ayarını açık bırakmayın. Bildirimle tüm makroları devre dışı bırak ayarı ile Güvenilir Konum birleşimi hem güvenli hem pratiktir.
- Kaydı kısa ve planlı tutun: Kayıt sırasında yaptığınız her yanlış tıklama, geri alma ve gereksiz hücre seçimi koda girer. Adımları önce prova edin, sonra kaydedin ve ardından Alt+F11 ile gereksiz Select satırlarını silin.
- Mutlak ve göreli kaydı bilerek seçin: Sabit bir tabloda çalışacak makro için mutlak kayıt, her seferinde farklı hücrede başlayacak makro için Göreli Başvuru Kullan açık kayıt uygundur. Veri uzunluğu değişiyorsa sabit adres yerine son satırı bulan kod yazın.
- Kısayol tuşlarını dikkatli atayın: Ctrl+C, Ctrl+V gibi yerleşik kısayolları kendi makronuzla örtmeyin; Ctrl+Shift+harf birleşimi daha güvenlidir. Atadığınız kısayol yalnız makronun bulunduğu dosya açıkken çalışır.
- Kişisel Makro Çalışma Kitabını kullanın: Her dosyada kullanacağınız genel makroları (veri temizleme, biçimlendirme gibi) PERSONAL.XLSB içinde saklayın. Dosya gizli açılır; görmek için Görünüm > Göster komutunu kullanın. Başka kişilerle paylaşılacak makrolar için .xlam eklentisi daha uygundur.
- Makro adlarında dikkatli olun: Ad harfle başlamalı, boşluk ve noktalama içermemelidir. Aynı modülde ya da aynı kapsamda iki makroya aynı ad verilemez; Excel işlev adlarıyla çakışan adlardan (örneğin Sum) kaçının.
- Makroyu durdurmak için Esc kullanın: Sonsuz döngüye giren ya da çok uzun süren makroyu Esc ya da Ctrl+Break ile durdurabilirsiniz. Açılan hata penceresinde Sonlandır'ı seçin; Ekran Güncelleme gibi ayarları kapattıysanız eski haline getirmeyi unutmayın.
- Sayfa koruması makroyu durdurur: Korumalı bir sayfada makro hücreleri değiştirmeye çalışırsa 1004 numaralı çalışma zamanı hatası alırsınız. Kodun başında korumayı kaldırıp sonunda yeniden uygulayabilirsiniz ya da makroyu korumadan önce çalıştırın.
- Koşullu biçim ile makro boyamasını karıştırmayın: Makro ile verilen renk sabit biçimdir; veri değişince güncellenmez. Anlık değişmesi gereken renkler için koşullu biçimlendirme, tek seferlik raporlar için makro boyaması tercih edin.
- Excel Web ve mobilde makro çalışmaz: VBA makroları yalnız masaüstü Excel'de (Windows ve çoğu Mac özelliğiyle) çalışır. Excel Web'de Office Scripts, mobil uygulamalarda ise yalnızca dosyanın görüntülenmesi vardır. Makro içeren dosyaları paylaşırken bunu alıcılara bildirin.
- İlgili konular: Geliştirici sekmesi, Visual Basic Düzenleyicisi (VBE), Makro Kaydet ve Göreli Başvuru Kullan komutları, Güven Merkezi ve Güvenilir Konumlar, Kişisel Makro Çalışma Kitabı (PERSONAL.XLSB), .xlsm ve .xlam dosya türleri, Koşullu Biçimlendirme, Tablo, Bölmeleri Dondur, Grafik ekleme ve Sırala komutları ile ETOPLA, TOPLA, ORTALAMA, KIRP işlevleri.