• DİKKAT

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

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
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Ü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?
 
Yöntemi var mı?
 
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
 
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
 
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ı")
 
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
 
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.
 
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ış
 
Hücrenin biçimini tarih+saat olarak ayarlarsanız istediğiniz sonuca ulaşabilirsiniz.
 
Teşşekür ederim hücre düzenleme ile çözdüm :) Elinize sağlık
 
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?
 
Geri
Üst