• DİKKAT

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

Workbook için daimi değişken tanımlama.

Kardiyak

Altın Üye
Katılım
25 Aralık 2008
Mesajlar
60
Excel Vers. ve Dili
2010 türkçe
Çalışma kitabımda bir sürü sayfa, userform ve modül var.
bunların içinde de bir sürü makro var.
Bir kaç değişken tüm makrolarda aynı şekilde tekrar tanımlanıyor. Bu kod fazlalığını çözmek için "tanımlar" diye bir makro oluşturdum ve bu değişkenlerin gerekli olduğu makrolarda öncelikle bu makroyu çalıştırıyorum.

Kod:
Global pass, yönetici, shi, shv, shl, shg, sha, shb
Sub tanımlar()
Set shi = Sheets("imza")
Set shv = Sheets("veri")
Set shl = Sheets("Liste")
Set shg = Sheets("Giriş")
Set sha = Sheets("Aylık")
Set shb = Sheets("Boş")
yönetici = shg.Range("P1")
pass = shv.Range("p1").Value
End Sub

Bunun yerine kitap açıldığında bu değişkenlerin bir kere tanımlanması ve kitap açık kaldığı sürece, çalıştıralacak olan tüm makrolarda tekrar değişken tanımlamadan ya da "call tanımlar" şeklinde tüm makrolara eklemek gerekmeden yapmanın bir yolu var mı?
 
Teşekkürler yanıtınız için.
Private Sub Workbook_Open() kısmında kodlarım vardı onlarıda bunun içine ekleyip denedim. harika çalışıyor tüm makrolarımda artık sh.. şeklinde sheetsleri kısaca yazabiliyorum.
ancak sayfada filtreleme yapan şu kod
Kod:
shl.Sort.SortFields.Clear
[COLOR="red"]ActiveWorkbook.shl.Sort.SortFields.Add Key:=Range("E1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal[/COLOR]
    [COLOR="Red"]With ActiveWorkbook.shl.Sort[/COLOR]
        .SetRange Range("A2:AH" & sonl)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
shl.Sort.SortFields.Clear
ActiveWorkbook.shl.Sort.SortFields.Add Key:=Range("K1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.shl.Sort
        .SetRange Range("A2:AH" & sonl)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
"R.T.E. 438
object doesn't support this property or method"
hatası verdi. Bu kısımda shl yerine "Sheets("liste")" şeklinde değiştirince kod çalıştı fakat proje resetlendikten sonra sanırım çalışan tüm kodlar durdurulduğu için tüm tanımlamalarda silindi ve makrolar object required hatası vermeye başladı. Bende Sub Auto_Open() içine tanımlar makrosunu call yöntemi ile çağırmaya karar verdim. böylece proje resetlendiğinde tanımlar makrosunu elle çalıştırabileceğim.

Sorunum ise yukarıdaki sıralama makrosunda sheet değişkeni neden çalışmadı.
 
Geri
Üst