Arkadaşlar Userfom ile hazırlanan bir dosyada (İlk zamanlar yoktu) son zamanlarda şu hata mesajını (Ekran görüntüsü) almaya başladım.
dosyayı kapatıp açınca düzeliyor. Sebebi ne olabilir acaba
F8 yapınca farklı kod satırları geliyor ama hepsinde de sarı renkte işaretli geliyor. Hatanın nerede olduğunu nasıl anlayacağız.
Birde DEBUG yapıp kodu durdurduktan sonra dosyayı kapatıp açınca bu defa hata vermiyor ve açılıyor.
Kalıcı bir hata varsa her açılışta aynı hata kodunu göstermesi gerekmez mi? bir defa hatalı bir defa hatasız açılıyor.
VBA penceresini açın.
Tools menüsünden References seçeneğini seçin. Açılan menüde MISSING ile başlayan satır varsa çentiğini kaldırıp pasif hale getirin.
Korhan Bey sanırım hatayı buldum ama doğru kodun ne olacağını bilmiyorum.
Ben dosyayı Userform'a eklediğim aşağıdaki kod ile kapatıyordum. Bu şekilde kapatırsam açılışta o hatayı veriyor. Burada bu hatayı vermeye sebep olan ne olabilir.
Kod:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then
Cancel = 1
Dim answer As Integer
answer = MsgBox(" PROGRAM KAPATILACAK DEĞİŞİKLİKLER KAYDEDİLSİN Mİ ? ", vbYesNoCancel, "Kur'ân-ı Kerim ve Meal Karşılaştırma Programı")
If answer = vbYes Then 'Program Otomatik değişiklikleri kaydedip Kapatır
ActiveWorkbook.Save
ActiveWorkbook.Close
ElseIf answer = vbNo Then 'Program Otomatik değişiklikleri kaydetmeden Kapatır
Application.DisplayAlerts = False
ActiveWorkbook.Close
Userform açık iken excel sayfasına dönüp dosyayı kapatırsam açılışta o hatayı vermiyor. Şimdi defalarca denedim
kodda nasıl bir hata var acaba yardımcı olabilirmisiniz.
Korhan Bey ilginize teşekkürler. sanırım hatayı buldum
Yukarıdaki koddaki "ActiveWorkbook.Close" kısmını "Application.Quit" yayınca düzeldi.
Benim amacım Kod ile dosyayı kapatırken başka açık excel dosyası var ise onları kapatmasın sadece aktif olan dosyayı kapatsın diye "ActiveWorkbook.Close" kullanmıştım. Kod çalışıyordu da ama bu kez bir sonraki açılışta bahsi geçen hatayı verdi. Bunun bir çaresi varmı acaba
Dosya açılınca çalışan excel dosyası "False" durumuna geçip UserForm açılıyor
Kapanırken de Userform'a yazılın kod ile "X" tuşu ile kapanıyor. Burada form dosyayı kapatırken tüm açık excel dosyalarını değilde sadece UserFor'un ait olduğu dosyayı kapatsın
Yukarıdaki kodda revize yapılarak anlattıklarımı yapacak ama hata vermeyecek...
Garip ama şu an artık hata vermiyor. Yukarıda bahsetmiştim il zamanlar yapmıyordu. aşağıdaki kod ile Form açıkken unutarak formdan kapatınca tüm açık excel dosyaları kapanıyordu. araştırdığımda "ActiveWorkbook.Close" kodunu kullanırsam bu sıkıntının gideceğini öğrendim. Gittide ama bu kez bahsettiğim hata çıktı. Yukarıda 2. açılışta hata vermiyor demiştim Meğer ki hata verince "DEBUG" ile excel sayfası açılıyor ya oradan dosyayı kapatıp tekrar açınca düzeliyormuş. 2. açılışta düzelmesinin sebebi meğerki buy imiş.
Garip ama sonuç bu
Kodun değişmiş hali:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then
Cancel = 1
Dim answer As Integer
answer = MsgBox(" PROGRAM KAPATILACAK DEĞİŞİKLİKLER KAYDEDİLSİN Mİ ? ", vbYesNoCancel, "Kur'ân-ı Kerim ve Meal Karşılaştırma Programı")
If answer = vbYes Then 'Program Otomatik değişiklikleri kaydedip Kapatır
ActiveWorkbook.Save Application.Quit ' Tüm açık excel dosyalarını kapatır
'ActiveWorkbook.Close ' sadece çalışılan excel dosyasını kapatır
ElseIf answer = vbNo Then 'Program Otomatik değişiklikleri kardetmeden Kapatır
Application.DisplayAlerts = False Application.Quit
'ActiveWorkbook.Close
Sizlere daha iyi bir deneyim sunabilmek icin sitemizde çerez konumlandırmaktayız, web sitemizi kullanmaya devam ettiğinizde çerezler ile toplanan kişisel verileriniz Veri Politikamız / Bilgilendirmelerimizde belirtilen amaçlar ve yöntemlerle mevzuatına uygun olarak kullanılacaktır.