• DİKKAT

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

Makro neden durur?

  • Konbuyu başlatan Konbuyu başlatan bezl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
Merhaba bir A çalışma kitabındaki makro ile B çalışma kitabını açtırıyorum ve B çalışma kitabındaki otomatik makro ile (auto_open) A çalışma kitabını kapattırıyorum.
Sub Makro1()
Workbooks(A).Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Sorun bu çalışma kitabını kapattırdıktan sonra makro duruyor. Yani "ActiveWindow.Close" dan sonra başka bir kod olsa bile makro burada duruyor. Bunun neden olduğunu ve bu koddan sonra başka bir kod çalıştırma imkanının olup olmadığını bulabilirmiyiz acaba?
Teşekkürler...
 
Son düzenleme:
Merhaba,
dosyalarınızın sadece açılış ve kapanış macrolarını içeren örneklerini yükleyebilirseniz daha sağlıklı bir inceleme yapabiliriz, saygılar.
 
merhaba

A dosyasını aktive etmeden aşağıdaki gibi deneyiniz.

Kod:
Sub Makro1()
Workbooks(A).Save
Workbooks(A).Close
End Sub
 
A çalışma kitabında
Sub aç()
Workbooks.Open Filename:= ""C:\B.xlsb""
End Sub

B Çalışma Kitabında
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Workbooks("C:\A.xlsb").Saved = True
Workbooks("C:\A.xlsb").Close
Call kill_Sil
Application.DisplayAlerts = True
End Sub

burada "Workbooks("C:\A.xlsb").Close" da yine makro duruyor Call kill_Sil ile devam etmiyor.
 
Merhaba,
A dosyası için;
Kod:
Sub aç()
Workbooks.Open Filename:="C:\B.xlsb"
Application.DisplayAlerts = False
ThisWorkbook.Saved = True
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub
B dosyası için;
Kod:
Private Sub Workbook_Open()
Call kill_Sil
End Sub
şeklinde deneyebilirmisiniz, kolay gelsin.
 
Sizin dediğiniz makro ile B.xlsb'yi açınca B aktif olacağı için yine B'yi kapatır A ile ilgili işlem yapmaz.
 
A dosyası için
Kod:
Sub aç()
Workbooks.Open Filename:="C:\B.xlsb"
Application.DisplayAlerts = False
ThisWorkbook.Save
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub
değiştirerek denerseniz, çalışması gerekir. Öncesinde de
test ettim, ancak A dosyasını saklamıyordu. Üstad Uzmanamelenin kodlarıyla
değiştirince saklıyor ve B dosyası açılıp makro çalışıyor.
 
Şimdi maksat sadece B'yi açıp onun içindeki makroyu çalıştırmak olsa olabilir ama ben ilkönce A'yı kapatıp sonrada onu silmek istiyorum. Bunun için ilkönce A'yı kapatıp sonra da A'yı da silecek makroyu çalıştırmak istiyorum. Böyle yapınca A'yı kapatınca makro duruyor.
 
Selamlar,

Aşağıdaki kodu denermisiniz.

B çalışma kitabına uygulayınız.

Kod:
Option Explicit
 
Private Sub Workbook_Open()
    Application.DisplayAlerts = False
    Workbooks("A.xlsb").ChangeFileAccess Mode:=xlReadOnly
    Kill ("C:\A.xlsb")
    Workbooks("A.xlsb").Close
    Application.DisplayAlerts = True
End Sub
 
çalıştığım belge (xltoexe ile Exe yapılmış belge) aşağıdaki kodu desteklemiyor.
Workbooks("A.xlsb").ChangeFileAccess Mode:=xlReadOnly
Ben de bunun için bu belgeden başka bir belge açıp ilk önce A belgesini kapatsın sonra hem kendini hem de A belgesini silsin istiyorum. Ama dediğim gibi A belgesini kapatinca makro duruyor.
 
Son düzenleme:
Geri
Üst