Makro yardım

kaos64

Altın Üye
Katılım
27 Ağustos 2009
Mesajlar
30
Excel Vers. ve Dili
Oficce 2016
Altın Üyelik Bitiş Tarihi
20-12-2024
Merhabalar sql sunucudan excele veri çekiyorum.
belli periyotta tetikletip gelen kişiler içindede filtre yaptırıyorum sorunsuz çalışıyor.
Bilgisayarda ikinci bir excel dosyası açılınca hata alıyorum yardımcı olabilirmisiniz. (Office 2016)

Sub AUTO_MAKRO()
DoEvents
Application.OnTime Now + TimeValue("00:00:30"), "MAKRO"
End Sub

Sub MAKRO()
DoEvents
Range("A1").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
ActiveWorkbook.Worksheets("Dash").ListObjects("Sorgu1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dash").ListObjects("Sorgu1").Sort.SortFields.Add _
Key:=Range("Sorgu1[[#All],[zaman]]"), SortOn:=xlSortOnValues, Order:= _
xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Dash").ListObjects("Sorgu1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
ActiveSheet.ListObjects("Sorgu1").Range.AutoFilter Field:=1, Criteria1:= _
Array("A KİŞİSİ", "B KİŞİSİ", "C KİŞİSİ"), Operator:=xlFilterValues
End With
Range("A1").Select
AUTO_MAKRO
End Sub
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,101
Excel Vers. ve Dili
Microsoft Office 2019 English
Ne hatası alıyorsunuz ? Hata kodu nedir?
 

kaos64

Altın Üye
Katılım
27 Ağustos 2009
Mesajlar
30
Excel Vers. ve Dili
Oficce 2016
Altın Üyelik Bitiş Tarihi
20-12-2024
Runtime error'91': object variable or With block variable not set
 
Katılım
11 Temmuz 2024
Mesajlar
36
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba sayın kaos64;
Bunun nedeni, makronuzda kullandığınız ActiveWorkbook referansının birden fazla çalışma kitabı açık olduğunda değişebilmesidir. Birden fazla çalışma kitabı açık olduğunda, ActiveWorkbook yanlış çalışma kitabına referans verebilir. Bu da makronuzun belirtilen sayfaları veya nesneleri bulamamasına ve hata almanıza neden olur.
Bu sorunu çözmek için, kodunuzdaki ActiveWorkbook referanslarını ThisWorkbook ile değiştirmelisiniz. ThisWorkbook, makronun bulunduğu çalışma kitabını ifade eder ve böylece kodunuz her zaman doğru çalışma kitabında çalışır, açık olan diğer çalışma kitaplarından etkilenmez.

Kod:
Sub AUTO_MAKRO()
    DoEvents
    Application.OnTime Now + TimeValue("00:00:30"), "MAKRO"
End Sub

Sub MAKRO()
    DoEvents
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lo As ListObject

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Dash")
    Set lo = ws.ListObjects("Sorgu1")
    
    ws.Range("A1").Select
    lo.QueryTable.Refresh BackgroundQuery:=False

    lo.Sort.SortFields.Clear
    lo.Sort.SortFields.Add Key:=ws.Range("Sorgu1[[#All],[zaman]]"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With lo.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    lo.Range.AutoFilter Field:=1, Criteria1:=Array("A KİŞİSİ", "B KİŞİSİ", "C KİŞİSİ"), Operator:=xlFilterValues

    ws.Range("A1").Select
    AUTO_MAKRO
End Sub
 

kaos64

Altın Üye
Katılım
27 Ağustos 2009
Mesajlar
30
Excel Vers. ve Dili
Oficce 2016
Altın Üyelik Bitiş Tarihi
20-12-2024
teşekkür ederim
 

kaos64

Altın Üye
Katılım
27 Ağustos 2009
Mesajlar
30
Excel Vers. ve Dili
Oficce 2016
Altın Üyelik Bitiş Tarihi
20-12-2024
Hocamlarım tekrar yardım istesem
dosya açıkken 2. bir hata aldım.
Run-time error '1004':
Range sınıfının Select yönetimi başarısız hatası veriyor.
yukardaki kodla
 
Üst