• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Gün hesabı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

mars2

Yeni Üye
Katılım
22 Nis 2022
Mesajlar
67
Aldığı beğeni
8
Excel V
Office 2016 TR
İyi Günler;
Farklı tablolartım buluynmaktadır. Bu tablolarda başlangıç ve bitiş tarihi arasındaki gün sayısı veren makroya ihtiyacın bulunmaktadır.
Bu makroyu farklı çalışma kitaplarında kullanmak istiyorum

Örneğin:
A çalışma kitabının sayfa1 deki tabloda D sutununda başlangıç tarihi E sutununda Bitiş tarihi F sutunuda ise bu tarihler arsındaki gün sayısı,
B çalışma kitabının sayfa2 deki tabloda K sutununda başlangıç tarihi L sutununda Bitiş tarihi M sutunuda ise bu tarihler arsındaki gün sayısını vermektedir. bundan dolayı ,
 
Çözüm
Yeni bir çalışma kitabı oluşturup Alt + F11 ile VBA editörü açın ve çalışma kitabınıza bir modül ekleterek aşağıdaki kodu girin
Kod:
Function GunFarki(Tarih1 As Date, Tarih2 As Date) As Long
    GunFarki = DateDiff("d", Tarih2, Tarih1)
End Function
ardından çalışma kitabını Excel Eklentisi olarak dosyaadı.xlam adıyla kaydedin. Kaydederken dosya yolunu değiştirmezseniz default olarak C:\Users\KullanıcıAdı\AppData\Roaming\Microsoft\AddIns yoluna kaydeder ancak dosyayı başka bir konumada kaydedebilirsiniz. Daha sonra Excel'de Dosya / Seçenekler / Eklentiler yolunu izleyerek en altta yer alan yönet kısmında git'e tıklayın default yola kaydettiyseniz GunFarki diye göreceksiniz başka yere kaydettiyseniz gözat ile xlam dosyanızı bulun...
Merhaba.

Aşağıdaki kodu deneyiniz.
1. Satır başlık olabileceği için 2. satırdan itibaren hesaplama yapar.
Kod:
Sub Test()
    Dim SonSatir As Long
    With Workbooks("A").Worksheets("Sayfa1")
        SonSatir = .Cells(Rows.Count, "D").End(xlUp).Row
        .Range("F2:F" & SonSatir).FormulaLocal = "=Tamsayı(E2-D2)"
        .Range("F2:F" & SonSatir).Value = .Range("F2:F" & SonSatir).Value
    End With
    
    With Workbooks("B").Worksheets("Sayfa2")
        SonSatir = .Cells(Rows.Count, "D").End(xlUp).Row
        .Range("M2:M" & SonSatir).FormulaLocal = "=Tamsayı(L2-K2)"
        .Range("M2:M" & SonSatir).Value = .Range("M2:M" & SonSatir).Value
    End With
End Sub
 
Sayın Alpi;
İlginiz için teşekkürler, ancak verdiğim örnek olup farklı farklı tablolarda farklı sayfa ve farklı hücrelerde olmaktadır.

Function gün()

End Function
 
A dosyasında
A çalışma kitabının sayfa1 deki tabloda D sutununda başlangıç tarihi E sutununda Bitiş tarihi F sutunuda ise bu tarihler arsındaki gün sayısı,

Bu örnekte Sonuç yine aynı sayfaya yazılması gerekmiyor mu? Sonuç farklı bir sayfaya mı yazılacak?
Eğer öyleyse normal Excel formülü işinizi görüyor.
Kod:
=TAMSAYI([A]Sayfa1!E2-[A]Sayfa1!D2)
 
Sayın Alpi;

yukarıda örnek olarak verdiğim (E;F), (L;M) sutuna göre makroda hücre tanımlaması yapılmış, bunun dışındaki hücrelerde işlem yapmaya kalktığımda bu makro çalışmayacaktır. sabit hücre tanımlaması yapmadan herhangi bir hücrede uygulamak istiyorum.
Örnek: =gün(x;y) gibi, sayfada belirleceğim başlangıç tarihi ve bitiş tarihleri arsındaki gün farkını bulmak istiyorum.
 
Yeni bir çalışma kitabı oluşturup Alt + F11 ile VBA editörü açın ve çalışma kitabınıza bir modül ekleterek aşağıdaki kodu girin
Kod:
Function GunFarki(Tarih1 As Date, Tarih2 As Date) As Long
    GunFarki = DateDiff("d", Tarih2, Tarih1)
End Function
ardından çalışma kitabını Excel Eklentisi olarak dosyaadı.xlam adıyla kaydedin. Kaydederken dosya yolunu değiştirmezseniz default olarak C:\Users\KullanıcıAdı\AppData\Roaming\Microsoft\AddIns yoluna kaydeder ancak dosyayı başka bir konumada kaydedebilirsiniz. Daha sonra Excel'de Dosya / Seçenekler / Eklentiler yolunu izleyerek en altta yer alan yönet kısmında git'e tıklayın default yola kaydettiyseniz GunFarki diye göreceksiniz başka yere kaydettiyseniz gözat ile xlam dosyanızı bulun solundaki checkboxı aktive edin ve Tamamı tıklayın. Her excel dosyanızda +Gunfarki(tarih1,tarih2) seçeneği ile kullanabilirsiniz. Add-in default yolu yerine başka yere kaydettiyeniz bu dosyayı taşımamaya dikkat edin aksi halde çalışmaz ve eklentiyi yeni dosya yolu ile tekrar aktive etmeniz gerekir.
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst