Kitapları say kapat kodun neresinde hatavar?

Katılım
12 Nisan 2006
Mesajlar
303
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar Merhaba

Excekl penceresinden gizlenmiş olan tüm kitapları acıp kayıt etmeden kapatmak istiyorum.
Ancak kod kitap sayısının yarısına geldiğinde hata veriyor. Ve geri kalanları kapaetmıyor.
Bu kodun neresinde hatam var.

Kod:
Sub KitapSayKapat()

sayac = Workbooks.Count
For i = 1 To sayac + 1  'Sayım doğru ancak her seferinde yarısını kapatıyor
Windows(i).Visible = True
If ActiveWorkbook.Name <> "Stok10.xls" Then ActiveWorkbook.Saved = True: ActiveWindow.Close
Next i
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Şöyle deneyin :cool:
Kod:
sayac = Workbooks.Count
application.visible=true 'Exceli görünür yapar.:cool:
For i = 1 To sayac  'Sayım doğru ancak her seferinde yarısını kapatıyor
if workbooks(i).name <> thisworkbook.name then
     workbooks(i).close false 'Açık kitapları kaydetmeden kapar.
end if
Next i
 
Katılım
12 Nisan 2006
Mesajlar
303
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Hocam Merhaba

Kodu uyguladım ama bu koddada sayacın yarısına gelince kod hata veriyor.
Birde kitaplar aktif hale gelip ekranda görünmüyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Hocam Merhaba

Kodu uyguladım ama bu koddada sayacın yarısına gelince kod hata veriyor.
Birde kitaplar aktif hale gelip ekranda görünmüyor.
Bu kod kapatılacak kitabı aktif hale getirmeden kapatıyor.
Diğer konu ise yarısına gelince hata vermemesi lazım.
Sizin açık olan dosyanı kaydedildimi.Ondanda hata verebilir.Exceli açıp kodları yazarsanız kitaba bir ad vermeden çalıştırırsanız ondanda hata verebilir.Normalde bir hata yok.
Bu dedğimi yapın yinede olamzsa alttaki satırı kodun en üstüne koyun
Kod:
on error resume next
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.
Açık olan o uygulamaya(Excele) it kitapları kaydetmeden kapatır.
kapatır.
Yeni bir excel uygulamsı ile kitapları açarsanız maalesef o kitapları kapatmıyor bu komut.:cool:
Kod:
Sub Düğme1_Tıklat()
For i = 1 To Workbooks.Count
    If Workbooks(i).Name <> ThisWorkbook.Name Then
        Workbooks(i).Close False
    End If
Next i
End Sub
 

Ekli dosyalar

Katılım
12 Nisan 2006
Mesajlar
303
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Hocam acık olan çalışma kitabı üzerinden makro ile cok sayıda başka çalışma kitapları actırıyorum.
Bu kitaplardan sadece bilgi alıyorum. dolayısı ile kayıt yapmadan cıkıyorum.
Buraya kadar problem yok.
Verdiğiniz kod ilede kayıtsız kapatmaya calışıyorum ama dediğim gibi sayaç yarıyı gectiğinde hata veriyor. Geri kalan kitaplar kapanmamış oluyor. Bu da istenmeyen durum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,188
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub AÇIK_DOSYALARI_KAPAT()
    Dim DOSYA As Window
 
    For Each DOSYA In Excel.Application.Windows
        Windows.Arrange ArrangeStyle:=xlTiled
        If DOSYA.Caption <> ThisWorkbook.Name Then
        DOSYA.Activate
        Application.Wait Now + TimeValue("00:00:01") / 2
        DOSYA.Close False
        End If
    Next
 
    ActiveWindow.WindowState = xlMaximized
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
12 Nisan 2006
Mesajlar
303
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Korhan Hocam Merhaba

Öncelikle teşekkürler ediyorum problemim cözüldü.
Hocam burada görsellik olsun diye şöyle bir ilave yapabilirmiyiz.
Kitapları kapatmadan evvel 12 adet kitabı aktif görünür hale getirip sonra bunları kapatıp.
[(Application.ScreenUpdating = False) Bu kodu kaldırsamda görünür olmadılar]
Sonra tekrar 12 görünür hale getirip tekrar kapatabilirmiyiz. Yaklaşık 144 adet kitap varda...
Çok şey istemiş olmadım inşallah
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,188
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Üstteki mesajımdaki kodu güncelledim. Denermisiniz.

Excel dosyalarının 12 adet aynı anda ekranda görünecek şekilde ayarı bildiğim kadarıyla yapılamıyor. Bunun yerine kodun çalışması sırasında ekranda açık olan pencereleri "YERLEŞTİR" komutu ile yeniden ekran konumlarını ayarlayarak biraz görsellik sağlamaya çalıştım. Umarım işinize yarar.
 
Üst