Ağda ortak word dosyasinin kimde açık oldugunu görmek ve kapatmak

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Selimileri0623

Yasaklı

Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba ağ üzerinde bir çok word dosyamız var her seferinde dosya ağda kimde açık bulmak için oda oda dolaşıyoruz. Acaba ağdaki word dosyasını kaydedip kapatmak veya kimde açık olduğunu görme imkanı var mı???
 
Garip bir soru olmuş açıksa... Şöyle bir yol izlenebilir... Word dosyaların bulunduğu dizine kontrol adı altında bir word dosyası eklenip hangi dosya açılırsa açılsın açılışta bu kontrol dosyasını açıp ilgili tarih saati ve bulunduğu bilgisayar adını yazdırılabilir. Sonra kaydedip kapattırılır. Bunlar sadece açılışta yapılır böylece hangi dosyayı kim açarsa açsın hep kaydedilmiş olunur. Aklıma gelen yöntem bu yapılabilir mi, denemek gerek... Tabi burada makro çalışmasının devamlı izin verilmiş olması gereklidir.

Yada dosyaya sağ tıklanarak ayrıtılar sekmesinde bulunan dosya bilgilerine bakmak gerek. Eğer açık olan veyahut değişiklik bilgisini saklı tutuluyor ise buradan da istenilene erişilebilir...
 
Garip bir soru olmuş açıksa... Şöyle bir yol izlenebilir... Word dosyaların bulunduğu dizine kontrol adı altında bir word dosyası eklenip hangi dosya açılırsa açılsın açılışta bu kontrol dosyasını açıp ilgili tarih saati ve bulunduğu bilgisayar adını yazdırılabilir. Sonra kaydedip kapattırılır. Bunlar sadece açılışta yapılır böylece hangi dosyayı kim açarsa açsın hep kaydedilmiş olunur. Aklıma gelen yöntem bu yapılabilir mi, denemek gerek... Tabi burada makro çalışmasının devamlı izin verilmiş olması gereklidir.
Peki böyle bir kontrol dosyası yapılabilir mi sizce?
 
Merhabalar @Selimileri0623 ,
Ekteki dosyayı inceler misiniz?

Not:
  • Asd.docm dosyası açtığınızda makro çalışarak aynı dizinde bulunan kontrol dosyasını açıp tarihi ve bilgisayar adını yazmaktadır. Bu nedenle dosyalar aynı dizinde bulunmalıdır.
  • Makro içerdiğinden makro güvenliğini en düşük seviyeye getirmeniz gereklidir. Aksi takdirde çalışmaz.
  • Her dosya için aynı kod çoğaltılabilir.
İlgili kod yapısı:

Kod:
[CODE]Private Sub Document_Open()
Application.ScreenUpdating = False
    Documents.Open FileName:=Mid(ThisDocument.Path, 1, Len(ThisDocument.Path)) & "\kontrol.docx"

    If ActiveDocument.Name = "kontrol.docx" Then
        Selection.TypeText Format(Now, "dd.mm.yyyy HH:nn:ss") & "     |     " & Environ("Computername")
        Selection.TypeParagraph
        ActiveDocument.Save
        ActiveDocument.Close
    End If
Application.ScreenUpdating = True

End Sub

[/CODE]
 

Ekli dosyalar

SAYIN @cakarem elinize kolunuza sağlık ama şöyle olsa daha iyi olmaz mı
Şöyle ki bir klasörün içinde ne kadar alt klasör olursa olsun tüm alt klasörlerle birlikte dosya adlarını yazıp girişi ve çıkışı tutsa . Örnek wordda dosya adi yok hangi dosya açıldı bellli değil. Dosya adı ve giriş çıkış logunu tutsa daha iyi olmaz mı
 
Klasör yapınızı bilmediğimden kodu farklı şekilde revize etmek gerek. Bunun yerine her klasörün içeriğe kontrol dosyası eklemeniz yeterli olacaktır. Hem böylece word dosyası da şişmemiş olacaktır. Tabi yine siz bilirsiniz... Sizin için önemli olan en son hangi bilgisayar da açıldığı değil mi?
Kayıt şeklide o zaman Tarih | Bilgisayar adı | Yapılan İşlem ( Açıldı-Kapatıldı ) şeklinde olması yeterli olur düşüncesindeyim.
İsteklerini belirtirseniz dosyayı ona göre revize edelim.
 
Dos. Sizin için önemli olan en son hangi bilgisayar da açıldığı değil mi? EVET
Kayıt şeklide o zaman Tarih | Bilgisayar adı | Yapılan İşlem ( Açıldı-Kapatıldı ) şeklinde olması yeterli olur düşüncesindeyim. EVET
İsteklerini belirtirseniz dosyayı ona göre revize edelim.
Ama iç içe o kadar çok klasör varki her birine kontril dosyasi birkamam inanin cok uzun zamanimi alir tek bit dosya ile ana klasörün icinde ve altinda ne kadar word dosyasi varsa bunun acilis kapanis logunu tutsa iyi olur Dosya şişerse tutulan tüm log kayıtlarını temizlemek için bir makro olsa ve o tuşa basinca tum log kaydini t3mizlese . Böylece dosya şişince log kaydını temizlesek olur mu acaba
 
Aşağıdaki kodu tüm word dosyaların kod bölümüne yapıştırmanız gerekmektedir.

İlgili kod yapısı :
Kod:
[CODE]Public Function FileFolderExists(strFullPath As String) As Boolean

    On Error GoTo EarlyExit
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True
   
EarlyExit:
    On Error GoTo 0
End Function

Private Sub Document_Close()
    Dim veri As Variant
   
Application.ScreenUpdating = False

    dosyaadi = ThisDocument.Name
    veri = Array("")

   
    If FileFolderExists(Mid(ThisDocument.Path, 1, Len(ThisDocument.Path)) & "\kontrol.docx") Then
     
        Documents.Open FileName:=Mid(ThisDocument.Path, 1, Len(ThisDocument.Path)) & "\kontrol.docx"
        If ActiveDocument.Name = "kontrol.docx" Then
            Selection.TypeText Format(Now, "dd.mm.yyyy HH:nn:ss") & "     |     " & Environ("Computername") & "     |     " & dosyaadi & "     |     KAPATILDI"
            Selection.TypeParagraph
            ActiveDocument.Save
            ActiveDocument.Close
        End If
    Else
   
        For i = 1 To Len(ThisDocument.Path)
            If Mid(ThisDocument.Path, i, 1) = "\" Then
                If i = Len(ThisDocument.Path) Then
                    veri(UBound(veri)) = veri(UBound(veri)) & i
                Else
                    veri(UBound(veri)) = veri(UBound(veri)) & i
                    ReDim Preserve veri(UBound(veri) + 1)
                End If
            End If
        Next i

        For i = UBound(veri) - 1 To LBound(veri) Step -1
            If FileFolderExists(Mid(ThisDocument.Path, 1, veri(i)) & "kontrol.docx") Then
                   
                    Documents.Open FileName:=Mid(ThisDocument.Path, 1, veri(i)) & "kontrol.docx"
                    If ActiveDocument.Name = "kontrol.docx" Then
                        Selection.TypeText Format(Now, "dd.mm.yyyy HH:nn:ss") & "     |     " & Environ("Computername") & "     |     " & dosyaadi & "     |     KAPATILDI"
                        Selection.TypeParagraph
                        ActiveDocument.Save
                        ActiveDocument.Close
                    End If
                   
            End If
        Next i
       
    End If
Application.ScreenUpdating = True
End Sub

Private Sub Document_Open()
    Dim veri As Variant
   
Application.ScreenUpdating = False

    dosyaadi = ThisDocument.Name
    veri = Array("")

   
    If FileFolderExists(Mid(ThisDocument.Path, 1, Len(ThisDocument.Path)) & "\kontrol.docx") Then
     
        Documents.Open FileName:=Mid(ThisDocument.Path, 1, Len(ThisDocument.Path)) & "\kontrol.docx"
        If ActiveDocument.Name = "kontrol.docx" Then
            Selection.TypeText Format(Now, "dd.mm.yyyy HH:nn:ss") & "     |     " & Environ("Computername") & "     |     " & dosyaadi & "     |     AÇILDI"
            Selection.TypeParagraph
            ActiveDocument.Save
            ActiveDocument.Close
        End If
    Else
   
        For i = 1 To Len(ThisDocument.Path)
            If Mid(ThisDocument.Path, i, 1) = "\" Then
                If i = Len(ThisDocument.Path) Then
                    veri(UBound(veri)) = veri(UBound(veri)) & i
                Else
                    veri(UBound(veri)) = veri(UBound(veri)) & i
                    ReDim Preserve veri(UBound(veri) + 1)
                End If
            End If
        Next i

        For i = UBound(veri) - 1 To LBound(veri) Step -1
            If FileFolderExists(Mid(ThisDocument.Path, 1, veri(i)) & "kontrol.docx") Then
                   
                    Documents.Open FileName:=Mid(ThisDocument.Path, 1, veri(i)) & "kontrol.docx"
                    If ActiveDocument.Name = "kontrol.docx" Then
                        Selection.TypeText Format(Now, "dd.mm.yyyy HH:nn:ss") & "     |     " & Environ("Computername") & "     |     " & dosyaadi & "     |     AÇILDI"
                        Selection.TypeParagraph
                        ActiveDocument.Save
                        ActiveDocument.Close
                    End If
                   
            End If
        Next i
       
    End If
Application.ScreenUpdating = True

End Sub

[/CODE]

Hangi dosya açılırsa açılsın kontrol dosyasını bulup, açarak içine gerekli bilgi yazılmaktadır. Kapatma işlemi yapılırken de aynı işlem yapılmaktadır.

Ekli dosyayı deneyiniz.

Not-1: kontrol dışındaki tüm dosyaları denemenizi istirham edeceğim.
Not-2: Kontrol dosyanızı en üst dizinde tutmanız yeterlidir.
 

Ekli dosyalar

Erdem sahibi özverili bir insan olan Sayın @cakarem Emre ÇAKAR Bey sizi tanımasam da hep takdir ettim. Çalışmanızdan önce duruşunuzu forumdaki ilgi ve alakanızı gönülden takdir ediyorum . Bu övgüler herkese seve seve yardım etmenin haklı bir gururun, asaletin ve liyakatın sahibine teveccühüdür. Çalışmalarınız herkese yol göstersin Hoşçakalın. Bu arada program çalışıyor ama hala programı tecrübe ediyorum. İyi geceler adamın dibi asil insan.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst