Kodun Bulunduğu Excel Dışındaki Excel Dosyalarını Kapatma

Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
Arkadaşlar,

Kullandığım "X" isimli dosyasının içine öyle bir kod atmak istiyorum ki X isimli excel dosyası dışındaki tüm excel dosyalarını kapatsın.

Bu mümkün mü acaba?
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Kod:
Sub xlTR_t165645_kodun_bulundugu_haric_tum_dosyalari_kapat()

    Dim wb As Workbook
    
    For Each wb In Workbooks
        If wb.Name <> ThisWorkbook.Name Then
            wb.Close SaveChanges:=True 'değişiklikleri kaydetmeden kapatmak için TRUE yerine FALSE yazılmalı
        End If
    Next wb

End Sub
 
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
Kod:
Sub xlTR_t165645_kodun_bulundugu_haric_tum_dosyalari_kapat()

    Dim wb As Workbook
    
    For Each wb In Workbooks
        If wb.Name <> ThisWorkbook.Name Then
            wb.Close SaveChanges:=True 'değişiklikleri kaydetmeden kapatmak için TRUE yerine FALSE yazılmalı
        End If
    Next wb

End Sub

Hocam bu kodun kendiliğinden, kendi dışında açık excel dosyalarını algılayıp kapatması için nereye monte edilmesi gerekir acaba?

Workbook Actiavite olayına mı yazmak lazım?
 
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
Çok teşekkür ederim.
Paşa bir kod oldu, kendi dışındakileri süpürüyor. :)

Kod:
Private Sub Workbook_Activate()
 Dim wb As Workbook
    
    For Each wb In Workbooks
        If wb.Name <> ThisWorkbook.Name Then
            wb.Close SaveChanges:=True 'değişiklikleri kaydetmeden kapatmak için TRUE yerine FALSE yazılmalı
        End If
    Next wb
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
rica ederim.

ben normal bir kod modülüne kopyalar, gerektikçe çalıştırırdım.
yanlışlıkla bu dosya aktif hale getirilir ise istek dışı tüm dosyaları kapatır çünkü.
 
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
rica ederim.

ben normal bir kod modülüne kopyalar, gerektikçe çalıştırırdım.
yanlışlıkla bu dosya aktif hale getirilir ise istek dışı tüm dosyaları kapatır çünkü.
Hocam benim program başka excel açık olunca sapıtıyor, bu kod onun için.
 
Katılım
26 Ocak 2006
Mesajlar
754
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Benzer bir problemim var. Makro çalıştığı dosyanın bir sayfasına gitmesi gerekiyor. Ancak eğer başka açık bir excel dosya varsa gideceği sayfayı bulamıyor. Bu kodu diğer dosyaları kapatmadan kodun bulunduğu dosyayı aktive etmesini nasıl sağlarız.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Örnek dosya ekleyebilir misiniz.
 
Katılım
26 Ocak 2006
Mesajlar
754
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Örnek dosya ekleyebilir misiniz.
Private Sub CommandButton1_Click()


'Eğer başka bir excel dosya açık ise burada hata veriyor. Yani Buradaki kod çalıştığında Verilen Malzeme sayfasını bulamıyor. Tek program açıkken sorun yok. Buraya bu makronun bulunduğu dosyayı aktive eden bir kod yazmam gerekiyor.

Sheets("Verilen Malzeme").Select
Range("A2").Select

Cells(65536, "A").End(xlUp).Offset(1, 0) = TextBox5.Value
ActiveCell.End(xlDown).Offset(0, 1) = ComboBox1.Value
ActiveCell.End(xlDown).Offset(0, 2) = TextBox1.Value
ActiveCell.End(xlDown).Offset(0, 3) = TextBox2.Value
ActiveCell.End(xlDown).Offset(0, 4) = ComboBox2.Value
ActiveCell.End(xlDown).Offset(0, 5) = TextBox6.Value
ActiveCell.End(xlDown).Offset(0, 6) = TextBox7.Value
MsgBox "Girişleriniz başarıyla kaydedildi.", , "BMutlu"
Unload UserForm1
UserForm1.Show

End Sub
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
ActiveWorkbook.Sheets("Verilen Malzeme").Select şeklinde deneyin.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Ya da ThisWorkbook.Sheets("Verilen Malzeme").Select şeklinde.
 
Katılım
26 Ocak 2006
Mesajlar
754
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
ActiveWorkbook.Sheets("Verilen Malzeme").Select şeklinde deneyin.
Bu kod olmadı.

Programımı çalıştırdığımda

Application.Visible = False
UserForm1.Show

kodu ile excel kayboluyor ve form açılıyor. Form üzerinden bilgiler doldurulup kaydet tuşuna basıldığında yukarıdaki kodlar çalışıyor ve "Verilen Malzeme" sayfasına bu bilgileri yazıyor.
Başka bir excel dosyası açık değilken program hatasız çalışıyor. Ancak başka excel dosyası açık ise sayfayı bulamadığı için hata veriyor.
Buraya yazacağımız kod şunu yapmalı.

Açık olan excel dosyalarından şu (benim dosyamın ismi) isimli dosyayı seç veya aktive et.

Şimdiden yardımlarınız için teşekkürler.
 
Katılım
26 Ocak 2006
Mesajlar
754
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Aşağıdaki kod ile halloldu.

Workbooks("Kirtasiye_Stok takip.xlsm").Activate

Sheets("Verilen Malzeme").Select
Range("A2").Select
 
Üst