Elinizde bölge, şube veya müşteri bazlı büyük bir liste varsa ve her grubu ayrı bir sayfaya almanız isteniyorsa, tek tek filtre-kopyala-yapıştır yapmanıza gerek yok. Bu iş bir VBA makrosuyla saniyeler içinde biter. Kod yazmayı bilmiyorsanız da sorun değil: Copilot ya da ChatGPT’ye doğru istemi verip kodu yazdırabilirsiniz. Aşağıda hem hazır kodu hem de AI’a bu kodu nasıl yazdıracağınızı adım adım gösteriyorum.
Kısa cevap: İşlem nasıl yapılır?
Bölgelere göre sayfa ayırma işlemi dört adımda tamamlanır. Önce dosyanızın yedek kopyasını alırsınız — VBA çalıştıktan sonra Ctrl+Z ile geri alma çalışmaz. Sonra Alt+F11 ile VBA ekranını açar, Ekle → Modül diyerek boş bir modül oluşturur ve kodu buraya yapıştırırsınız. VBA ekranını kapatıp Görünüm → Makrolar yolundan makroyu çalıştırdığınızda, listedeki her benzersiz bölge için biçimleri ve sütun genişlikleri korunmuş ayrı bir sayfa oluşur.
Adım adım uygulama
1. Verinizi kontrol edin
Kodun düzgün çalışması için tablonun düzenli olması gerekir. Şu üç şeyi doğrulayın:
- İlk satır başlık satırı olmalı (Bölge, Ürün, Tutar gibi).
- Ayırmak istediğiniz sütunda boş hücre bulunmamalı.
- Aynı bölge adı farklı yazımlarla girilmemeli (“Ege” ve “EGE” ayrı iki sayfa oluşturur).
Bu örnekte bölge adlarının B sütununda olduğunu varsayıyorum. Sizin tablonuzda farklı bir sütundaysa, koddaki "B" ifadesini kendi sütun harfinizle değiştirmeniz yeterli.
2. Dosyanın yedeğini alın
Bu adımı atlamayın. VBA ile yapılan satır silme, sayfa ekleme gibi işlemler geri alınamaz. Dosyayı kapatmadan hızlı bir yedek için: Dosya → Farklı Kaydet ile ikinci bir kopya oluşturun. Ek bir güvenlik olarak, ayırmak istediğiniz sayfanın üzerine sağ tıklayıp Taşı veya Kopyala → Kopya oluştur diyerek çalışma kitabı içinde de bir yedek sayfa bırakabilirsiniz.
3. VBA ekranını açın ve modül ekleyin
Alt+F11 tuş kombinasyonuyla Visual Basic Editor açılır. Dizüstü bilgisayarlarda bu kısayol çoğu zaman Alt+Fn+F11 şeklinde çalışır — F tuşları ortam kontrollerine atanmış olabilir.
Editör açıldığında üst menüden Ekle (Insert) → Modül (Module) deyin. Sağda boş bir kod penceresi açılacak. Kodu doğrudan bu pencereye yapıştıracaksınız — sayfa nesnelerinin (Sheet1, Sheet2) altına değil, modüle.
4. Kodu yapıştırın ve çalıştırın
Aşağıdaki kodu boş modüle yapıştırın:
vba
Sub BolgelereAyir()
Dim wsKaynak As Worksheet, wsYeni As Worksheet
Dim sonSatir As Long, i As Long
Dim sozluk As Object, anahtar As Variant
Dim deger As String
Set wsKaynak = ActiveSheet
Set sozluk = CreateObject("Scripting.Dictionary")
sonSatir = wsKaynak.Cells(wsKaynak.Rows.Count, "B").End(xlUp).Row
' Benzersiz bölge adlarini topla
For i = 2 To sonSatir
deger = Trim(CStr(wsKaynak.Cells(i, "B").Value))
If deger <> "" Then sozluk(deger) = 1
Next i
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' Her bölge için sayfa olustur
For Each anahtar In sozluk.Keys
wsKaynak.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set wsYeni = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
wsYeni.Name = Left(Replace(CStr(anahtar), "/", "-"), 31)
With wsYeni
.AutoFilterMode = False
.Range("A1").CurrentRegion.AutoFilter Field:=2, Criteria1:="<>" & anahtar
On Error Resume Next
.Range("A2:A" & sonSatir).SpecialCells(xlCellTypeVisible).EntireRow.Delete
On Error GoTo 0
.AutoFilterMode = False
End With
Next anahtar
Application.DisplayAlerts = True
Application.ScreenUpdating = True
wsKaynak.Activate
MsgBox sozluk.Count & " bölge için sayfa olusturuldu.", vbInformation
End Sub
Kodu yapıştırdıktan sonra VBA ekranını kapatın. Ayırmak istediğiniz sayfaya gelin, Görünüm → Makrolar → Makroları Görüntüle yolunu izleyin, listeden BolgelereAyir makrosunu seçip Çalıştır deyin. İşlem birkaç saniye sürer ve alt kısımda her bölge için yeni bir sayfa sekmesi belirir.
Bu kodun mantığı önemli: kaynak sayfayı olduğu gibi kopyalar, sonra ilgili bölgeye ait olmayan satırları siler. Bu yüzden hücre biçimleri, sütun genişlikleri, başlık renkleri — hepsi korunur. Sıfırdan sayfa oluşturup veri yapıştıran kodlarda bu biçimler kaybolur.
5. Dosyayı doğru formatta kaydedin
Bu ayrımı tekrar tekrar yapacaksanız, makronun dosyada kalması gerekir. Dosya → Farklı Kaydet deyip kayıt türünü Excel Makro İçerebilen Çalışma Kitabı (.xlsm) olarak seçin. Normal .xlsx formatında kaydederseniz Excel makroyu siler ve bir uyarı gösterir.
Bu iş size tek seferlik verildiyse — yani bir daha yapmayacaksanız — kaydetmenize gerek yok. Sonucu normal .xlsx olarak kaydedip geçebilirsiniz.
Copilot veya ChatGPT’ye bu kodu nasıl yazdırırsınız?
Kod yazmayı bilmiyorsanız asıl beceri, doğru istemi kurmaktır. Burada kritik bir nokta var: Copilot bu bölme işlemini kendisi yapamaz. Ağustos 2026 itibarıyla Excel’deki Copilot eklentisi “şu tabloyu bölgelere göre sayfalara ayır” dediğinizde işlemi doğrudan gerçekleştirmiyor. Yapabildiği şey, size bu işi yapacak VBA kodunu yazmak.
Bu yüzden istemi “yap” diye değil, “kodunu yaz” diye kurmanız gerekir. İşe yarayan istem şu dört parçadan oluşur:
1. Hangi sayfa ve hangi sütun: “Bu sayfadaki B sütununda bulunan bölgelere göre…”
2. Ne istediğiniz: “…her bir bölge grubunu ayrı yeni sayfalara oluşturmak istiyorum.”
3. Korunacak özellikler: “…hücre yapılarını ve sütun genişliklerini koruyarak…”
4. Kod ve talimat isteği: “Bunun VBA kodunu yazar mısın? Kod yazmayı bilmediğim için kodu nasıl çalıştırmam gerektiğini de adım adım anlat.”
Dördüncü madde çoğu kullanıcının atladığı kısım. Bunu eklemediğinizde AI size sadece kod bloğunu verir; eklediğinizde Alt+F11’den başlayan kurulum talimatını da yazar. Aynı istem ChatGPT, Claude veya Gemini’da da çalışır — tek fark, Copilot eklentisi sayfayı görebildiği için sütun yapınızı kendisi inceleyebilir. Sohbet tabanlı araçlarda tablodan birkaç örnek satır paylaşmanız işi kolaylaştırır.
Sık yapılan hatalar
Kodu sayfa nesnesine yapıştırmak. VBA ekranında soldaki listede Sheet1, Sheet2 gibi nesneler görürsünüz. Kod oraya yapıştırıldığında makro listesinde görünmez. Mutlaka Ekle → Modül ile yeni bir modül açın.
Sütun harfini değiştirmeyi unutmak. Kod B sütununa göre yazılmıştır. Bölge adlarınız D sütunundaysa hem "B" ifadesini "D" yapmalı hem de Field:=2 değerini Field:=4 olarak güncellemelisiniz. Field numarası, tablonun ilk sütunundan itibaren kaçıncı sütun olduğunu belirtir.
31 karakterden uzun sayfa adları. Excel’de sayfa adı 31 karakteri geçemez. Ayrıca \ / ? * [ ] karakterleri sayfa adında kullanılamaz. Koddaki Left(...31) ve Replace ifadeleri bu iki riski karşılamak için var; bölge adlarınızda başka özel karakterler varsa aynı mantıkla ek Replace satırı ekleyebilirsiniz.
Aynı adda sayfa zaten varsa. Makroyu ikinci kez çalıştırdığınızda “Ege” sayfası zaten varsa Excel hata verir. İkinci çalıştırmadan önce oluşan sayfaları silin veya koda önce mevcut sayfayı silen bir kontrol ekletin.
Yedek almadan çalıştırmak. En sık ve en pahalı hata. VBA ile silinen satırlar geri gelmez.
İleri seviye ipuçları
Ayrı dosyalara ayırma. Aynı mantıkla her bölgeyi ayrı bir çalışma kitabı olarak dışa aktarabilirsiniz. AI’a istemi verirken “her bölgeyi ayrı bir Excel dosyası olarak C:\Raporlar klasörüne kaydet” diye belirtmeniz yeterli. Kod, sayfa kopyalama yerine yeni çalışma kitabı oluşturup SaveAs ile kaydeder.
İki sütuna göre ayırma. Bölge + yıl gibi iki kritere göre ayırmak isterseniz, sözlüğe anahtar olarak iki hücrenin birleşimini eklersiniz: deger = Cells(i, "B").Value & "-" & Cells(i, "C").Value.
Makroyu düğmeye bağlama. Her seferinde menüden makro çalıştırmak yerine, Geliştirici → Ekle → Düğme (Form Denetimi) ile sayfaya bir düğme koyup makroyu ona atayabilirsiniz. Geliştirici sekmesi görünmüyorsa Dosya → Seçenekler → Şeridi Özelleştir yolundan etkinleştirilir.
Power Query alternatifi. Bölme işini kod olmadan yapmak isterseniz Power Query ile gruplayıp her grubu ayrı sorgu olarak yükleyebilirsiniz. Ancak Power Query’de otomatik sayfa oluşturma yoktur; sayfaları yine elle açmanız gerekir. Tek seferlik işlerde VBA daha hızlıdır, düzenli tekrarlanan veri hazırlığında Power Query daha sürdürülebilirdir.
Gerçek iş hayatında bu ne işe yarar?
Kurumsal eğitimlerde bu soru en çok satış ve finans ekiplerinden gelir. Klasik senaryo şudur: merkezde 12 bölgenin tüm satış hareketlerini içeren tek bir liste vardır ve her bölge müdürüne yalnızca kendi verisi gönderilecektir. Elle yapıldığında 12 kez filtre, 12 kez kopyala, 12 kez yeni sayfa demektir — yaklaşık yarım saat ve her adımda satır kaçırma riski.
Aynı ihtiyaç insan kaynaklarında departman bazlı bordro dağıtımında, muhasebede cari hesap ekstrelerinin ayrıştırılmasında, üretimde vardiya veya hat bazlı raporlarda karşımıza çıkar. Mantık her seferinde aynıdır: tek bir kolon, o kolonun benzersiz değerleri, her değer için bir sayfa.
Eğitimlerde gözlemlediğim şey şu: katılımcıların çoğu bu işi yapabileceğini bilmiyor, bildiğinde ise kod yazmayı bilmediği için vazgeçiyor. Oysa artık yapılacak şeyi tarif edebilmek, kodu yazabilmekten daha kritik hale geldi. AI araçları kodu yazıyor; sizin bilmeniz gereken, ne isteyeceğiniz ve çıkan kodu nereye yapıştıracağınız. <h2><strong>Sık Sorulan Sorular (SSS)</strong></h2>
Makroyu çalıştırdıktan sonra geri alabilir miyim? Hayır. VBA ile yapılan işlemler Ctrl+Z ile geri alınamaz, çünkü makro çalıştığında Excel’in geri alma geçmişi temizlenir. Bu yüzden çalıştırmadan önce mutlaka yedek almanız gerekir.
Copilot bu bölme işlemini kendisi yapamaz mı? Ağustos 2026 itibarıyla Excel’deki Copilot eklentisi tabloyu doğrudan sayfalara bölmüyor; bunun yerine işlemi yapacak VBA kodunu yazıyor. Bu özelliğin ileride doğrudan desteklenmesi bekleniyor.
Makro çalıştırırken “Makrolar devre dışı” uyarısı alıyorum, ne yapmalıyım? Dosya → Seçenekler → Güven Merkezi → Güven Merkezi Ayarları → Makro Ayarları yolundan makroları etkinleştirebilirsiniz. İnternetten indirilen dosyalarda ayrıca dosya özelliklerinden “Engellemeyi kaldır” işaretlenmesi gerekebilir.
Bölge adlarında Türkçe karakter varsa sorun olur mu? Sayfa adlarında Türkçe karakter kullanılabilir, sorun çıkarmaz. Sorun çıkaran karakterler \ / ? * [ ] işaretleri ve 31 karakteri aşan uzun adlardır.
Oluşan sayfalarda formüller de kopyalanır mı? Evet, sayfa kopyalama yöntemi kullanıldığı için formüller de gelir. Ancak silinen satırlara başvuran formüller #BAŞV! hatası verebilir; bu durumda kopyalama sonrası değerlere dönüştürme adımı eklemeniz gerekir.
Kaç bölgeye kadar çalışır? Excel’de sayfa sayısı için teorik bir sınır yoktur, bellek elverdiği sürece çalışır. Ancak 50’nin üzerinde grup varsa sayfa yerine ayrı dosyalar oluşturmak yönetim açısından çok daha pratiktir.
Aynı işlemi Mac’te yapabilir miyim? Evet, Mac için Excel’de de VBA çalışır. Ancak Scripting.Dictionary nesnesi Mac’te desteklenmez; bu durumda AI’a “Mac uyumlu olacak şekilde Dictionary kullanmadan yaz” talimatını eklemeniz gerekir.
Özet
Excel’de tabloyu bölge, şube veya departman bazında ayrı sayfalara ayırmak VBA makrosuyla saniyeler içinde tamamlanır. Kod yazmayı bilmeseniz de Copilot veya ChatGPT’den kodu yazdırabilirsiniz; kritik olan istemi “yap” değil “kodunu yaz ve nasıl çalıştıracağımı anlat” şeklinde kurmaktır. Sayfa kopyalayıp gereksiz satırları silen yöntem, hücre biçimlerini ve sütun genişliklerini koruduğu için sıfırdan veri yapıştıran yöntemlerden daha iyi sonuç verir. Makro çalıştırmadan önce dosyanın yedeğini almak zorunludur, çünkü VBA işlemleri geri alınamaz. İşlemi tekrar tekrar yapacaksanız dosyayı .xlsm formatında, tek seferlikse normal .xlsx olarak kaydetmeniz yeterlidir. Aynı mantıkla ayrı dosyalara aktarma, iki sütuna göre ayırma veya makroyu bir düğmeye bağlama gibi ileri kullanımlar da mümkündür.
Excel’de bu tür otomasyonları AI desteğiyle kurmayı sistemli öğrenmek isterseniz Copilot ile Excel Kullanımı eğitim seti iyi bir başlangıç noktasıdır. Kodun kendisini anlamak ve kendi ihtiyaçlarınıza göre düzenleyebilmek için Excel VBA ve Makro ile Otomasyon ile Excel’de Makrolar ile Çalışmak eğitim setlerinde konu uygulamalı örneklerle ele alınmaktadır. <h2><b>Eğitmen Hakkında</b></h2>
<strong>Ömer Bağcı</strong>, Türkiye’nin en bilinen <b>Excel eğitmeni</b> ve <b>Excel uzmanı</b> olarak tanınmaktadır. 30 yılı aşkın deneyimle Türkiye’nin önde gelen şirketlerine — Ziraat Bankası, Papara, Karel ve Sanko Holding gibi kurumlara — <b>Excel, Power BI, SQL ve Yapay Zekâ destekli Excel çözümleri</b> konusunda eğitimler vermiştir.
YouTube’daki <a href=”https://www.youtube.com/@excelveyapayzeka”>@excelveyapayzeka</a> kanalında 184.000’i aşkın aboneye ulaşan 1000’den fazla videosu, onu Türkiye’de Excel üzerine en kapsamlı içerik üreten eğitmen yapmıştır. <a href=”https://vidoport.com”>Vidoport.com</a> üzerinden sunduğu 80+ Excel eğitim seti ve 4500’den fazla ders videosu ile 62.000’den fazla üyeye ulaşmıştır.
Seçkin Yayıncılık’tan çıkan <b>”İleri Düzey Excel 365″</b> kitabının yazarıdır; kitap 12. baskıya ulaşmıştır ve bireysel kullanıcılar ile kurumsal profesyoneller için en çok tercih edilen başvuru kaynaklarından biridir.
Excel eğitimlerinde yalnızca formülleri öğretmekle kalmaz; <b>satış raporları, finans analizleri, insan kaynakları tabloları</b> gibi gerçek iş senaryolarına uygun çözümler sunar. Vizyonu, Excel’in gücünü yapay zekâ ile birleştirerek iş dünyasında daha hızlı, daha akıllı ve hatasız karar alma süreçleri oluşturmaktır. Bu kapsamda ChatGPT ile Excel formülleri yazma, Copilot entegrasyonu ve Excel + AI verimlilik eğitimleri ile fark yaratmaktadır.
Siz de Ömer Bağcı’nın hazırladığı eğitimlerle Excel becerilerinizi geliştirmek için <a href=”https://vidoport.com/uyelik-ucretleri”>hemen üye olun</a> ve tüm eğitimlere sınırsız erişim kazanın.