• DİKKAT

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

VBA lı Bir Excel Sayfası Açık İken Başka Bir Excel Dosyası Açınca Hata Çıkması

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
70
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Merhabalar,
İçerisinde makro bulunan bir dosya açık iken herhangi bir excel dosyası açtığımda aşağıdaki hata mesajını almaktayım.

260659
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,779
Excel Vers. ve Dili
2021 Türkçe
Merhaba.
Makro bulunan dosyanızda aşağıdaki gibi bir kod satır var mı?

Kod:
Application.OnKey "^q", "MakroAdi"
Varsa sadece kodların bulunduğu dosyada çalışacak şekilde ayarlanmalı.
Eğer çözemezseniz makrolu dosyayı paylaşın kontrol edelim.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,226
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Muzaffer Ali hocamıza destek olarak ;

Bu hata mesajı şunu söylüyor: Makro dosyanız, Excel’in Application.OnKey özelliğiyle bir kısayol tuşunu bir makroya bağlamaya çalışıyor ama Excel bunu o anda yapamıyor (ya makroyu bulamıyor, ya da bağlama “geçersiz” bir durumdayken yapılıyor). Bu yüzden makro dosyanız açıkken başka bir Excel dosyası açtığınız anda tetiklenip hata veriyor.

Başka dosya açınca Excel “aktif workbook” değiştiriyor. Siz OnKey’i sadece "BenimMakrom" diye bağladıysanız, Excel bazen makroyu yanlış yerde arayıp hata veriyor.Bunu kullanın:

Application.OnKey "^+K", "'" & ThisWorkbook.Name & "'!BenimMakrom"

ThisWorkbook içine koymanız önerilir:

Private Sub Workbook_Open()
On Error Resume Next
Application.OnKey "^+K", "'" & ThisWorkbook.Name & "'!BenimMakrom"
On Error GoTo 0
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnKey "^+K" ' reset (bağlantıyı kaldırır)
On Error GoTo 0
End Sub

Eğer sizde Workbook_Open yerine “her workbook açıldığında” çalışan bir Application event’i varsa (aşağıdaki madde), hata çok daha sık görülür.
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
70
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Merhaba.
Makro bulunan dosyanızda aşağıdaki gibi bir kod satır var mı?

Kod:
Application.OnKey "^q", "MakroAdi"
Varsa sadece kodların bulunduğu dosyada çalışacak şekilde ayarlanmalı.
Eğer çözemezseniz makrolu dosyayı paylaşın kontrol edelim.
260661

Burda varmış hocam sanki Private Sub workbook_open() bu kod gereksiz olmuş. Bundan dolayı yapıyor olabilir mi?
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
70
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Muzaffer Ali hocamıza destek olarak ;

Bu hata mesajı şunu söylüyor: Makro dosyanız, Excel’in Application.OnKey özelliğiyle bir kısayol tuşunu bir makroya bağlamaya çalışıyor ama Excel bunu o anda yapamıyor (ya makroyu bulamıyor, ya da bağlama “geçersiz” bir durumdayken yapılıyor). Bu yüzden makro dosyanız açıkken başka bir Excel dosyası açtığınız anda tetiklenip hata veriyor.

Başka dosya açınca Excel “aktif workbook” değiştiriyor. Siz OnKey’i sadece "BenimMakrom" diye bağladıysanız, Excel bazen makroyu yanlış yerde arayıp hata veriyor.Bunu kullanın:

Application.OnKey "^+K", "'" & ThisWorkbook.Name & "'!BenimMakrom"

ThisWorkbook içine koymanız önerilir:

Private Sub Workbook_Open()
On Error Resume Next
Application.OnKey "^+K", "'" & ThisWorkbook.Name & "'!BenimMakrom"
On Error GoTo 0
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnKey "^+K" ' reset (bağlantıyı kaldırır)
On Error GoTo 0
End Sub

Eğer sizde Workbook_Open yerine “her workbook açıldığında” çalışan bir Application event’i varsa (aşağıdaki madde), hata çok daha sık görülür.
Hocam bunda da eğer dosya adı değişirse hata vermez mi?
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
70
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
'Private Sub Workbook_Deactivate()
'Application.OnKey "^{TAB}"
'End Sub

'Private Sub workbook_open()
'Application.OnKey "^{TAB}", "Satir_Ekle"
'End Sub

Bu ikisini pasif yapınca düzeldi. Olmaması bir problem olur mu?

Normalde kod satırı

Option Explicit

Private Sub Workbook_Activate()
Application.OnKey "^{TAB}", "Satir_Ekle"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^{TAB}"
End Sub

'Private Sub Workbook_Deactivate()
'Application.OnKey "^{TAB}"
'End Sub

'Private Sub workbook_open()
'Application.OnKey "^{TAB}", "Satir_Ekle"
'End Sub
 
Üst