• DİKKAT

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

Dosyada Değişiklik Olduğunu Hissetme

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. Bir excel dosyasını açtıktan sonra bazı işlemler yapılır. Save işlemi yapılınca Değişiklik tarihi update olur. Buraya kadar tamam.

Dosya açıldığında herhangi bir hücreye bir giriş olmuşsa bunu makro ile anlamak (hissetmek) mümkün mü ? Yani makro çalıştırıldığında nerede ne değişmiş değil, sadece bu dosyada açıldıktan sonra "herhangi bir hücreye giriş olmuştur" u hissetmek/raporlamak/mesaj iletisi gibi bildirmek mümkün mü ?
 
Merhaba,
Aşağıdaki kodu Thisworkbook'a yazın.

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "Değişti"
End Sub
 
Merhaba,

Dosyada değişiklik yaptıktan sonra ve kaydettikten sonra çalıştırıp deneyin.
Sanırım istediğiniz böyle birşey..

Kod:
Sub test()
    MsgBox ThisWorkbook.Saved
End Sub
 
Sayın dEdE ilginiz için çok teşekkürler. Kodu şu şekilde revize edebilir misiniz ? Her girişte değil de, makro tuşuna basılınca bir kere yapmak ve bu değişim olduğunu A1 hücresine yazmak ?

Böyle bir değişiklik olabilir mi ?
 
Sayın Zeki Gürsoy. Kod çok güzel. Sadece True veya False ibaresinin A1 hücresine yazılması sağlanabilir mi ? Ben denedim beceremedim !!!
 
Sayın Gürsoy'un Kodu nu şoyle değiştirdim.

Sub test()
[A1] = ThisWorkbook.Saved
End Sub
 
Son düzenleme:
Sayın Zeki Gürsoy. Kod çok güzel. Sadece True veya False ibaresinin A1 hücresine yazılması sağlanabilir mi ? Ben denedim beceremedim !!!

Bence bunu fonksiyon olarak kullanın.

Kod:
Function Is_Dirty()
    Is_Dirty = iif(ThisWorkbook.Saved, "Değişiklik yok", _
                 "Değişiklik yapılmış")
End Function

Sub test ()
   [a1]=Is_Dirty
End Sub
 
Çok teşekkür ederim sayın dEdE. Sağlıcakla kalın, başarılarınızın devamını dilerim.
 
peki kayıt yapan değişiklik yapan pc adını tarihini ve saatini yazabilirmi bir köşeye ? Böyle birsey mümkünmü ?
 
Sayın dEdE, sayın Zeki Gürsoy, sayın ozgretmen; yardımlarınız ve ilginiz için çok teşekkür ederim. Sayenizde kendimde yeni çığırlar açtım. Sağlıcakla kalın.
 
peki kayıt yapan değişiklik yapan pc adını tarihini ve saatini yazabilirmi bir köşeye ? Böyle birsey mümkünmü ?

Merhaba,
Şöyle birşeyler yaptım ama, Değişiklik yok yazınca değişiklik yapılmış oluyor. Üstadlar el atarsa daha güzel kodlar çıkar umarım.
Saygılar.

Kod:
Sub DegisiklikVarmı()
   [a1] = IIf(ThisWorkbook.Saved, "Değişiklik yok", "Değişiklik yapılmış")
   pc_adı = Split(Environ(4), "=")
   [b1] = pc_adı(1)
   [c1] = IIf(ThisWorkbook.Saved, "", Date)
   [d1] = IIf(ThisWorkbook.Saved, "", Time)
End Sub
 
Merhaba

sayın dEdE bence uzaklara gitmişsiniz. Ben olsam bunu BeforeSave olayına yazardım.

Kayıt yapıldığı zaman kim kayıt yaptıysa o anki tarih ve saat isteniyor herhalde.
Birde affınıza sığınarak,
Environ olayını pek bilmiyorum. (4) bende başka sonuç verdi. bende aşağıdaki gibi yazdım.

ThisWorkbook'a
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
pc_adi = Split(Environ(5), "=")
Sheets("Sayfa1").[a1] = "Değişiklik Yapılmış"
Sheets("Sayfa1").[b1] = pc_adi(1)
Sheets("Sayfa1").[c1] = Date
Sheets("Sayfa1").[d1] = Time
End Sub
 
Merhaba,

Bende Environ için örnek vereyim.

Kod:
Sub EnvironEnviron()
    MsgBox "Kullanıcı Adı : " & Environ("UserName")
    MsgBox "Bilgisayar Adı : " & Environ("ComputerName")
End Sub

Environ ile öğrenebileceğimiz değerleri görebiliriz.

Kod:
Sub EnvironEnviron()
For i = 1 To 30
        Cells(i, "A") = Environ(i)
Next i
End Sub
 
Merhaba,

Boşuna demedim,
Üstadlar el atarsa daha güzel kodlar çıkar umarım.
diye. :)

Environ olayını pek bilmiyorum. (4) bende başka sonuç verdi. bende aşağıdaki gibi yazdım.

Environ için aşağıdaki linkte Sayın Levent MENTEŞOĞLU nun 8. sıradaki mesajına bakabilirsiniz. Ben de oradan öğrendim.


http://www.excel.web.tr/f48/goreceli-dosya-yolu-var-m-t62535.html

Saygılar.
 
Geri
Üst