• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Çalışma Sayfalarının Listesinin Oluşturmak

Katılım
13 Ağustos 2013
Mesajlar
11
Excel Vers. ve Dili
2010 İngilizce
Merhaba Arkadaşlar;

Herhangi bir çalışma kitabındaki çalışma sayfalarının listesini tıkladığım hücreye aktaracak bir makroya ihtiyacım var.

Daha doğrusu eski bilgisayarımda böyle bir makrom vardı ancak iş değişikliği nedeniyle apar topar yedekleri alırken personal.xlsb'nin yedeğini almayı atlamışım :(

Şimdi yeni bilgisayarımda bu makroyu tanımlamak için araştırıyorum ancak bir türlü istediğim hale getiremedim.

Örneğin aşağıdaki gibi bir kod buldum.

Kod:
Sub ListSheetNames()
    Dim R As Range
    Dim WS As Worksheet
    Set R = ActiveCell
    For Each WS In ThisWorkbook.Worksheets
        R.Value = WS.Name
        Set R = R(2, 1)
    Next WS
End Sub

Bu kod aktif dosyada gayet güzel çalışıyor, ancak şöyle bir sıkıntım var. Tüm workbook'larda çalışması için personal.xlsb'ye kaydediyorum. Daha sonra aktif workbook'ta tıkladığım zaman personal.xlsb'deki worksheet'lerin listesini getiriyor, haliyle her dosya için modül ekleyerek kod girmek gerekiyor. Benim istediğim ise o an önümde açık olan workbook'un herhangi bir yerine tıklayarak liste oluşturmak.

Bu konuda paylaşmak için elinde kod olan veya paylaştığım kodu aktif workbook için çalışacak hale getirecek şekilde düzenleyebilecek arkadaşlar yardımcı olabilirlerse minnettar olurum.

Desteğiniz için teşekkür ederim.

İyi çalışmalar...
 
Kod:
For Each WS In ActiveWorkbook.Worksheets
olarak deneyin.
 
Örneğin aşağıdaki gibi bir kod buldum.

Kod:
Sub ListSheetNames()
    Dim R As Range
    Dim WS As Worksheet
    Set R = ActiveCell
    For Each WS In ThisWorkbook.Worksheets
        R.Value = WS.Name
        Set R = R(2, 1)
    Next WS
End Sub

Kodda yer alan "For Each WS In ThisWorkbook.Worksheets" satırını "For Each WS In ActiveWorkbook.Worksheets" olarak düzeltince istediğim gibi oldu, faydalanmak isteyen arkadaşlar için kodun tamamı aşağıdaki gibidir:

Kod:
Sub ListSheetNames()
    Dim R As Range
    Dim WS As Worksheet
    Set R = ActiveCell
    For Each WS In ActiveWorkbook.Worksheets
        R.Value = WS.Name
        Set R = R(2, 1)
    Next WS
End Sub
 
Geri
Üst