• DİKKAT

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

Hata Mesajı

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
510
Excel Vers. ve Dili
Excel 2016 Türkçe
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

219451
 
DEBUG dediğinizde sizi nereye götürüyor.
 
O bölümde bir sıkıntı yok. F8 ile adımlayınca bir yerde bu hata mesajını veriyordur. O bölümü paylaşnız.
 
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.
 
Şöyle deneyin.

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.
 
Bu salt şekliyle kod hata vermez; başka kodlar neden olabilir.
Hatanın Türkçesi : "Etkin bileşen nesne oluşturamıyor"
 
Son düzenleme:
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

'Else 'İptal düğmesinde Hiçbir işlem yapmaz

End If
End If
End Sub
 
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.
 
Son düzenleme:
Bu şekilde yardımcı olamam. Dosyanızı paylaşınız.
 
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...
 
dosyayı paylaşmamamın sebebi boyutu fazla olduğundan rar bile yapsam 1 mb lı 3-4 adet yapıyor. Değilse özel bir sebebi yok. Yanlış anlaşılmasın.
 
Ben bahsettiğiniz satırların ilk mesajınızdaki hatayı vereceğini düşünmüyorum.
 
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

Else 'İptal düğmesinde Hiçbir işlem yapmaz

End If
End If
End Sub
 
Geri
Üst