• DİKKAT

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

EXCEL KAPATMA MAKROSU

musa yüksel

Altın Üye
Katılım
27 Şubat 2014
Mesajlar
98
Excel Vers. ve Dili
2016 tr
Merhaba ,
gün içerisinde birden çok excel dosyası ile çalışıyorum ,kaydet kapat makrosu kullanıyorum tüm dosyalarda
birden fazla dosya açıkken kapat makrosu sorunsuz çalışıyor , ama tek excel dosyası açıksa kapat makrosu dosya yı kapatıyor excel açık kalıyor
internette böyle bir satır buldum makro ya ekledim Application.Visible = False
bu sefer de birden çok excel dosyası açık ise hepsini kapatıyor
birden çok dosya açık ise kapanması if li nasıl bir satır eklemem lazım



Sub KaydetKapat()

Application.DisplayAlerts = False 'Uyarı mesajlarını kapatır
ThisWorkbook.Save 'Dosyayı kaydeder
Application.Visible = False
ThisWorkbook.Close 'Dosyayı kapatır
Application.DisplayAlerts = True 'Uyarı mesajlarını tekrar açar
End Sub
 
Merhaba,
Kod:
Sub KaydetKapat()

Application.DisplayAlerts = False 'Uyarı mesajlarını kapatır
ActiveWorkbook.Save 'Dosyayı kaydeder
Application.DisplayAlerts = True 'Uyarı mesajlarını tekrar açar
    
    If Workbooks.Count = 2 Then
        Application.Quit
    Else
        ActiveWorkbook.Close
    End If

End Sub
 
Merhaba,
Kod:
Sub KaydetKapat()

Application.DisplayAlerts = False 'Uyarı mesajlarını kapatır
ActiveWorkbook.Save 'Dosyayı kaydeder
Application.DisplayAlerts = True 'Uyarı mesajlarını tekrar açar
   
    If Workbooks.Count = 2 Then
        Application.Quit
    Else
        ActiveWorkbook.Close
    End If

End Sub
Merhaba,
cevap için teşekkürler ama diğer açık dosyaları da kapatmak için soruyor

1 tane excel dosyası açık ise Application.Visible = False çalışsın
2 tane excel dosyası açık ise çalışmasın istiyorum
 
Zaten dediğiniz gibi. Application.Quit yerine Application.Visible = False yazıp deneyiniz.
Workbooks.Count = 2 satırındaki 2 sayısı aktif kitabınız ve bir de kişisel makro kitabınızın açık olması demektir. Kişisel makro kitabınız gizli açıldığı için onu görmüyorsunuz.
 
Zaten dediğiniz gibi. Application.Quit yerine Application.Visible = False yazıp deneyiniz.
Workbooks.Count = 2 satırındaki 2 sayısı aktif kitabınız ve bir de kişisel makro kitabınızın açık olması demektir. Kişisel makro kitabınız gizli açıldığı için onu görmüyorsunuz.

istemiş olduğum çalışma prensibi aşağıda ki kod ile oldu ama 2 tane çalışma sayfası açık ise bu kod çalışıyor 3-4-5 tane açık ise hepsini kapatıyor , gün içerisinde 10 a yakın açık excel dosyası olabiliyor bende , 2 yerıne "Workbooks.Count = 2" 1 den fazla gibi birşey nasıl yazabilirim "1 more" gibi

Sub KaydetKapat()

Application.DisplayAlerts = False 'Uyarı mesajlarını kapatır
ActiveWorkbook.Save 'Dosyayı kaydeder
Application.DisplayAlerts = True 'Uyarı mesajlarını tekrar açar

If Workbooks.Count = 2 Then
ActiveWorkbook.Close
Else
Application.Quit
End If

End Sub
 
İstemiş olduğum kod tam olarak buydu

teşekkürler

Sub KaydetKapat()

Application.DisplayAlerts = False 'Uyarı mesajlarını kapatır
ActiveWorkbook.Save 'Dosyayı kaydeder
Application.DisplayAlerts = True 'Uyarı mesajlarını tekrar açar

If Workbooks.Count > 1 Then
ActiveWorkbook.Close
Else
Application.Quit
End If

End Sub
 
Kodunuzu denedim.
Üç Excel açtım, bir tanesine de kodu ekledim.
Kodu çalıştırdım, kodun olduğu Excel kapandı, diğerleri açık kaldı.
Fakat siz hepsinin kapandığını yazmışsınız, bende neden olmadı ?
 
Sn. musa yüksel meramımızı ifade etmekte zorlansak da makroya kendi dokunuşlarınızı da katarak çözüme kavuşmanız güzel.
Sn. cavanoos her yiğidin bir yoğurt yiyişi vardır diye boşuna söylememişler.
 
Kodunuzu denedim.
Üç Excel açtım, bir tanesine de kodu ekledim.
Kodu çalıştırdım, kodun olduğu Excel kapandı, diğerleri açık kaldı.
Fakat siz hepsinin kapandığını yazmışsınız, bende neden olmadı ?
son paylaştığım kod ile o şekilde çalışıyor , öncekilerde hepsini kapatıyordu ,
excel i arka planda da kapattığı için birden fazla excel açık olduğunda hepsi kapanıyordu
son yazılan makro da 1 den fazla açık excel var ise mevcut sayfayı kapatıyor diğerleri açık kalıyor
1 tane açık var ise arka planda da excel i kapatıyor
 
Kodunuz ilgimi çekti ve kullanmak istedim çalışıyor fakat tekrar girdiğimde makro siliniyor silinmemesi için ne yapmam lazım?
 
Ben bütün excel çalışma kitaplarını tek butonla kaydedip kapatmak istiyorum bu kodları denediğimde sadece çalıştığım kitabı kaydediyor
 
Kod:
Sub KaydetveKapat()
Dim Wkb As Workbook
 
With Application
    .ScreenUpdating = False
    For Each Wkb In Workbooks
        With Wkb
            If Not Wkb.ReadOnly Then
                .Save
            End If
            If .Name <> ThisWorkbook.Name Then
                .Close
            End If
        End With
    Next Wkb
    .ScreenUpdating = True
    .Quit
End With
End Sub
 
Kod:
Sub KaydetveKapat()
Dim Wkb As Workbook

With Application
    .ScreenUpdating = False
    For Each Wkb In Workbooks
        With Wkb
            If Not Wkb.ReadOnly Then
                .Save
            End If
            If .Name <> ThisWorkbook.Name Then
                .Close
            End If
        End With
    Next Wkb
    .ScreenUpdating = True
    .Quit
End With
End Sub
Çok teşekkürler hocam. Saygılar.
 
Geri
Üst