Excel'de İçindekiler Bölümü Oluşturmak
Excel'de büyük dosyalarla yani içerisinde çok fazla sayıda çalışma sayfasından oluşan dosyalarla çalıştığımızda sayfalar arasında gezinmek cidden zor olmaktadır. Böyle durumlarda çalışma kitabımızın birinci sayfasına İÇİNDEKİLER gibi bir sayfanın eklenmesi faydalı olacaktır. Bu derste bu işlemin nasıl çok kısa sürede yapılacağı anlatılmaktadır.
Ders Videosu
Excel ile İçindekiler Menüsü
EXCEL VBA İLE İÇİNDEKİLER BÖLÜMÜ OLUŞTURMAK...
Aşağıdaki fotodan da görüleceği üzere çalışma kitabımızda 10'dan fazla çalışma sayfası var. Bunların tek tek isimlerini kopyalayarak herhangi bir çalışma sayfasına kaydetmek ve her bir hücre için köprü oluşturmak (Örn: 'Sayfa1'!A1' ) ciddi anlamda zaman israfı olmaktadır. Aşağıdaki kodu kullanarak bu işi tam otomatik bir şekilde yerine getirebilirsiniz.
Kod satırlarının yanına açıklamaları da yazdım. Umarım faydalı olur. İyi çalışmalar...
Sub deneme() Dim i As Integer 'İçerisinde tamsayı tutan bir değişken tanımlıyoruz Dim tempAdress As String Dim tempworksheet As String 'İçerisinde metin tutan iki tane değişken tanımlıyoruz ThisWorkbook.Worksheets.Add Before:=Worksheets(1) 'Çalışma sayfamıza 1 sırada olmak üzere yeni bir sayfa ekliyoruz. ThisWorkbook.Worksheets(1).Name = "İÇİNDEKİLER" 'Bu yeni eklenen sayfamıza "İÇİNDEKİLER" ismin atıyoruz. Burayı değiştirerek başka bir isimde atayabilirsiniz. 'BURASI ÇOK ÖNEMLİ: Eğer çalışma kitabınızda İçindekiler isimli bir çalışma sayfası mevcut ise hata alırsınız.... For i = 2 To Worksheets.Count 'For döngüsü 2. sıradan dönmeye başlıyor. 'Çünkü birinci sırada içindekiler sayfamız var ve biz bunu listede görmek istemiyoruz. tempAdress = "#'" & Worksheets(i).Name & "'!A1" 'Her bir döngüde sayfa ismini alıp yanına A1 hücresi ile birleştirip adres oluşturacak geçici değişken tempworksheet = Worksheets(i).Name 'Her bir döngüde çalışma sayfasının adının tempworksheet nesnesine atıyoruz. With Worksheets(1) .Hyperlinks.Add Anchor:=.Cells(i, 2), _ Address:=tempAdress, _ TextToDisplay:=tempworksheet End With 'With End With bloğu içerine bu değişkenlerimizi atayarak linkleri oluşturuyoruz. 'Anchor ile linkleri istediğimiz hücreye yazıyoruz 'Address ile linkleri getiriyoruz. 'TextToDisplay ile hücrede yazılmasını istediğimiz metni getiriyoruz. Next i End Sub
Teşekkürler çok faydalı oldu....
YanıtlaSilİşinize yaramasına sevindim.
SilEğer çalışma sayfanızda "İÇİNDEKİLER" adıyla herhangi bir sayfa mevcut ise hata alırsınız. Hata ile karşılaşmamak için ya "İÇİNDEKİLER" sayfasını sileceksiniz yada farklı bir isim tanımlamanız gerekmektedir.
YanıtlaSilPeki seçtiğimiz sayfadan içindekiler bölümüne nasıl dönüş yapabiliriz
YanıtlaSilİstediğiniz sayfanın herhangi bir hücresinde sağ tuşa basıp açılan menuden "Köprü"yü seçin. daha sonra "Bu belgeye yerleştir" bölümünü seçmeniz yeterlidir.
SilBu bilgi işime çok yaradı teşekkür ederim ama yeni sayfa eklediğimde otomatik indexe eklenmesi için ne yapmamız gerekiyor.
YanıtlaSilAslında bunu bende düşündüm ama biraz zor sanki. Kodlamada listener dediğimiz bir kavramı düşünmek lazım. Yani makro kodlarda yeni bir sayfa eklenme olayını takip ederek, sayfa eklendiğinde bu metodu çağırmanız lazım.
Sil