• DİKKAT

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

Açık kitap kontrolü.

  • Konbuyu başlatan Konbuyu başlatan s.savas
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba arkadaşlar.
Açık olan excel çalışma kitabı kapatılmadan, yeni bir excel kitabı açılmasını engelleyebilirmiyiz.
 
ThisWorkbook kod modülüne.
(Tabii makrolar engellenir ise işe yaramaz.)

Kod:
Private Sub Workbook_Open()

Dim ksay As Long
ksay = Workbooks.Count
If ksay > 1 Then ThisWorkbook.Close

End Sub
 
Son düzenleme:
tabii şöyle daha uygun olabilir.


Kod:
Private Sub Workbook_Open()

Dim ksay As Long

ksay = Workbooks.Count
If ksay > 1 Then 
     Msgbox "Aynı anda sadece 1 dosya açık olabilir."
     ThisWorkbook.Close
End If

End Sub
 
Üstat teşekkür ederim.

Makro aşağıdaki durumlarda sorunsuz çalışıyor.
Her iki sayfada da bu makro kayıtlı ise ikinci sayfa açılamıyor.
Makrosuz sayfadan sonra makrolu sayfa açılmak istenirse açılamıyor.

Sadece şu durumda yetersiz kalıyor.
Bu makronun kayıtlı olduğu bir belge açıldıktan sonra, aynı makronun kayıtlı olmadığı farklı bir sayfa daha açılmak istenirse, her iki sayfa da açılabiliyor.
 
Selamlar,

Aşağıdaki kodu dosyanızın ThisWorkbook bölümüne uygulayın.

Kod:
Option Explicit
 
Private Sub Workbook_Activate()
    Dim X As Byte
    
    For X = 1 To Excel.Application.Windows.Count
        If Workbooks(X).Name <> ThisWorkbook.Name Then
            Workbooks(X).Close False
        End If
    Next
End Sub
 
Private Sub Workbook_Deactivate()
    Dim X As Byte
    
    For X = 1 To Excel.Application.Windows.Count
        If Workbooks(X).Name <> ThisWorkbook.Name Then
            Workbooks(X).Close False
        End If
    Next
End Sub
 
üstad farkı bakın yukarıda.




ancak 2. bir "session" açıldığı takdirde bu da aşılabiliyor.
 
Son düzenleme:
Selamlar,

Aşağıdaki kodu dosyanızın ThisWorkbook bölümüne uygulayın.

Kod:
Option Explicit
 
Private Sub Workbook_Activate()
    Dim X As Byte
    
    For X = 1 To Excel.Application.Windows.Count
        If Workbooks(X).Name <> ThisWorkbook.Name Then
            Workbooks(X).Close False
        End If
    Next
End Sub
 
Private Sub Workbook_Deactivate()
    Dim X As Byte
    
    For X = 1 To Excel.Application.Windows.Count
        If Workbooks(X).Name <> ThisWorkbook.Name Then
            Workbooks(X).Close False
        End If
    Next
End Sub

Korhan hocam teşekkürler. Sorunsuz işlev görüyor.
 
Geri
Üst