• DİKKAT

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

Kapalı Dosya Açık Kapat veya Kapalı İse Aç

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
777
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Merhaba arkadaşlar.

Kapalı bir dosyada çalışırken, dosya daha önce açık ise "Bu dosya zaten açık" uyarısı vermesin istiyorum. Veya kapatılacağı zaman, kapalı ise de uyarı vermesin istiyorum.

Veya

Eğer dosya açık ise kapat
else (kapalı ise)
dosyayı aç
end if

Diye bir kod var mıdır. Yardımcı olursanız sevinirim.
 
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim WB As Workbook, File_Name As String
    
    File_Name = "Deneme.xlsm"
    
    On Error Resume Next
    Set WB = Workbooks(File_Name)
    On Error GoTo 0
    
    If WB Is Nothing Then
        Set WB = Workbooks.Open(File_Name, False, False)
    Else
        WB.Activate
    End If
End Sub
 
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim WB As Workbook, File_Name As String
  
    File_Name = "Deneme.xlsm"
  
    On Error Resume Next
    Set WB = Workbooks(File_Name)
    On Error GoTo 0
  
    If WB Is Nothing Then
        Set WB = Workbooks.Open(File_Name, False, False)
    Else
        WB.Activate
    End If
End Sub

Korhan bey çok teşekkür ederim. Bu kod açık ise kapat, kapalı ise aç için mi?

Dosya açık iken, dosya zaten açık, yeniden açılsın mı diye uyarı veriyor.
 
Son düzenleme:
Dosya kapalı ilen de dosya bulunamadı diye hata veriyor.

Belirtmeyi unuttum. Kapalı dosyalar, çalışma kitabının bulunduğu klasörde. Ondan hata veriyor olabilir mi?
 
Son düzenleme:
Kod genel bir kontrol için...

If koşul bloklarını kendi isteğinize göre şekillendirebilirsiniz..

Hatta koda klasör yolunu da eklememiz daha doğru olacaktır.

C++:
Option Explicit

Sub Test()
    Dim WB As Workbook, File_Path As String, File_Name As String
    
    File_Path = ThisWorkbook.Path
    File_Name = "Deneme.xlsm"
    
    On Error Resume Next
    Set WB = Workbooks(File_Name)
    On Error GoTo 0
    
    If WB Is Nothing Then
        Set WB = Workbooks.Open(File_Path & Application.PathSeparator & File_Name, False, False)
    Else
        WB.Activate
    End If
End Sub
 
Kod genel bir kontrol için...

If koşul bloklarını kendi isteğinize göre şekillendirebilirsiniz..

Hatta koda klasör yolunu da eklememiz daha doğru olacaktır.

C++:
Option Explicit

Sub Test()
    Dim WB As Workbook, File_Path As String, File_Name As String
   
    File_Path = ThisWorkbook.Path
    File_Name = "Deneme.xlsm"
   
    On Error Resume Next
    Set WB = Workbooks(File_Name)
    On Error GoTo 0
   
    If WB Is Nothing Then
        Set WB = Workbooks.Open(File_Path & Application.PathSeparator & File_Name, False, False)
    Else
        WB.Activate
    End If
End Sub

Teşekkürler Korhan bey.
 
Geri
Üst