Kapalı Excelin Değiştirilme Saati

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Üstadlar Merhaba;

Bir Klasör içindeki excel çalışma kitabına (Kaynak) bağlantım var. Bu kaynak excel rastgele aralıklarla güncelleniyor.
İsteğim şu Kaynak excelin değiştirilme saat ve tarihini bir başka çalışma kitabı olan HEDEF A1 hücresine yazdırmak

Nasıl yapabilirim?
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Yöntemi var mı?
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,598
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Bunun için kodu kaynak excel'in içine yazmak gerekiyor.
Kaynak dosya kapandığında yol değişkeni ile belirlediğiniz excel'in A1 hücresine kapanış saatini yazacaktır.

Kod:
Sub auto_close()

Set rs = VBA.CreateObject("adodb.Recordset")
Set con = VBA.CreateObject("adodb.Connection")

yol = "C:\Users\........\Desktop\kaynak.xlsx"

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "update [sayfa1$] set f1 = now "

Set rs = con.Execute(sorgu)


End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,510
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

Aşağıdaki fonksiyonu kullanabilirsiniz.

Fonksiyon içine dosya yolunu "Dosya_Yolu" yazıp kullanabilirsiniz. Ya da dosya yolunu bir hücreden aldırabilirsiniz.

Fonksiyonu uyguladığınız hücreyi saat olarak biçimlendirmeyi unutmayınız.

C++:
Option Explicit

Function File_Last_Modified_Date(My_Folder As String) As Date
    Dim FSO As Object, My_File As Object
   
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set My_File = FSO.GetFile(My_Folder)
   
    File_Last_Modified_Date = My_File.DateLastModified
End Function
 
Katılım
18 Ocak 2019
Mesajlar
234
Excel Vers. ve Dili
Office 2013
Merhaba @leonadies

Bu şekilde deneye bilirmisiniz.
Kod:
MsgBox FileDateTime( "Kapalı belgenin bulunduğu dizin" & "\" & "Kapalı dosyanın adı ve uzantısı")
MsgBox yerine açık belgede bir hücrenin adresi de yazılabilir
Kod:
[A1] = FileDateTime( "Kapalı belgenin bulunduğu dizin" & "\" & "Kapalı dosyanın adı ve uzantısı")
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Bunun için kodu kaynak excel'in içine yazmak gerekiyor.
Kaynak dosya kapandığında yol değişkeni ile belirlediğiniz excel'in A1 hücresine kapanış saatini yazacaktır.

Kod:
Sub auto_close()

Set rs = VBA.CreateObject("adodb.Recordset")
Set con = VBA.CreateObject("adodb.Connection")

yol = "C:\Users\........\Desktop\kaynak.xlsx"

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "update [sayfa1$] set f1 = now "

Set rs = con.Execute(sorgu)


End Sub
Kaynak dosya bir webden düzenli iniyor. Müdahale etme şansım yok üstadım :) Ama kod gayet güzel
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Alternatif;

Aşağıdaki fonksiyonu kullanabilirsiniz.

Fonksiyon içine dosya yolunu "Dosya_Yolu" yazıp kullanabilirsiniz. Ya da dosya yolunu bir hücreden aldırabilirsiniz.

Fonksiyonu uyguladığınız hücreyi saat olarak biçimlendirmeyi unutmayınız.

C++:
Option Explicit

Function File_Last_Modified_Date(My_Folder As String) As Date
    Dim FSO As Object, My_File As Object
  
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set My_File = FSO.GetFile(My_Folder)
  
    File_Last_Modified_Date = My_File.DateLastModified
End Function
Biraz acemiyim sanırım başaramadım.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Merhaba @leonadies

Bu şekilde deneye bilirmisiniz.
Kod:
MsgBox FileDateTime( "Kapalı belgenin bulunduğu dizin" & "\" & "Kapalı dosyanın adı ve uzantısı")
MsgBox yerine açık belgede bir hücrenin adresi de yazılabilir
Kod:
[A1] = FileDateTime( "Kapalı belgenin bulunduğu dizin" & "\" & "Kapalı dosyanın adı ve uzantısı")
Sub saat()
[A1] = FileDateTime( "Kapalı belgenin bulunduğu dizin" & "\" & "Kapalı dosyanın adı ve uzantısı")
End Sub

Bu şekilde denedim olmadı.Sanırım yöntemim yanlış
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,510
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hücrenin biçimini tarih+saat olarak ayarlarsanız istediğiniz sonuca ulaşabilirsiniz.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Teşşekür ederim hücre düzenleme ile çözdüm :) Elinize sağlık
 
Katılım
18 Ocak 2019
Mesajlar
234
Excel Vers. ve Dili
Office 2013
Verdiğim koddaki,
"Kapalı belgenin bulunduğu dizin" yerine örneğin ThisWorkbook.Path
"Kapalı dosyanın adı ve uzantısı" yerine de örneğin xxxx.xlsx
yazarak denediğinizden emin misiniz?
 
Üst