Çalışma Kitabının Açık Olup Olmadığını Kontrol Et - Microsoft Excel


Eğer açık olan birden fazla excel dosyasıyla işlem yapıyorsanız işinize yarayabilecek bir makro kodudur. Eğer dosya zaten açılmışsa aktifleştirip mesaj veriyor, açık değilse de açıyor.

Kod


Option Explicit

Sub CalismaKitabininAcikOlupOlmadiginiKontrolEt()
    Dim kontrol_dosya As String
    
    On Error GoTo dosyaAc
    kontrol_dosya = "hesaplar.xlsm"
    
    Windows(kontrol_dosya).Activate
    MsgBox (kontrol_dosya & String(2, vbCrLf) & "Dosya zaten açık.")
    
    Exit Sub
    
dosyaAc:
    Workbooks.Open Filename:=ThisWorkbook.Path & kontrol_dosya
End Sub

Kod (Açıklamalı)


Option Explicit

Sub CalismaKitabininAcikOlupOlmadiginiKontrolEt()
    '--------------------------------------------------
    'Kontrol edeceğimiz dosyanın
    'ismini değişkene atayacağız.
    'Bu amaçla değişken oluşturduk.
    '--------------------------------------------------
    Dim kontrol_dosya As String
    
    '--------------------------------------------------
    'Bir hata olması durumunda dosyaAc
    'isimli yerden çalışmaya devam et.
    '--------------------------------------------------
    On Error GoTo dosyaAc
    
    '--------------------------------------------------
    'Dosyanın ismini atadık.
    '--------------------------------------------------
    kontrol_dosya = "hesaplar.xlsm"
    
    '--------------------------------------------------
    'Dosyanın açık olup olmadığını anlamak
    'için Activate metodunu kullandık. Dosya
    'zaten açıksa direkt olarak çalışacak.
    '--------------------------------------------------
    Windows(kontrol_dosya).Activate
    
    '--------------------------------------------------
    'Bu durumu kullanıcıya bildirdik.
    '--------------------------------------------------
    MsgBox (kontrol_dosya & String(2, vbCrLf) & "Dosya zaten açık.")
    
    '--------------------------------------------------
    'Exit Sub kodunun altındaki satır dosyayı yeniden
    'açmak için kullanılacağından ve dosya açıksa buna
    'gerek olmadığından dolayı bu noktada yordamdan çıkıyoruz.
    '--------------------------------------------------
    Exit Sub
    
    '--------------------------------------------------
    'Eğer dosya açılmamışsa yukarıdaki GoTo
    'kısmı çalışacak ve bu noktaya bir atlama
    'yapacak. Kod çalışmaya buradan devam edecek.
    '--------------------------------------------------
dosyaAc:
    
    '--------------------------------------------------
    'Dosyayı tam yolunu vererek açtırıyoruz.
    '--------------------------------------------------
    Workbooks.Open Filename:=ThisWorkbook.Path & kontrol_dosya
End Sub

Kod


Option Explicit

Function CalismaKitabininAcikOlupOlmadiginiOgren(calismaKitabiAdi As String) As Boolean
    Dim acikCalismaKitaplari As Workbook
    
    On Error Resume Next
    
    Set acikCalismaKitaplari = Workbooks(calismaKitabiAdi)
    
    If Err = 0 Then
        CalismaKitabiAcikMi = True
    Else
        CalismaKitabiAcikMi = False
    End If
End Function

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba