• DİKKAT

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

İki tarih arası toplama

Katılım
16 Mayıs 2020
Mesajlar
327
Excel Vers. ve Dili
Office 365 Türkçe
Hareketler adlı sayfada a sütünda isimler var g sütünda fiyat ve h sütünda tarihler var
Textbox1 değişken isim
Textbox2 başlangıç tarihi
Textbox3 bitiş tarihi
Textbox3 = toplam
Bunu VBA kodunu yazabilirmisiniz
 
Deneyiniz.

C++:
Option Explicit

Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, Toplam As Double
    Set S1 = Sheets("Hareketler")
    Toplam = Application.WorksheetFunction.SumIfs(S1.Range("G:G"), S1.Range("A:A"), TextBox1, S1.Range("H:H"), ">=" & CLng(CDate(TextBox2)), S1.Range("H:H"), "<=" & CLng(CDate(TextBox3)))
    MsgBox Toplam
End Sub
 
Deneyiniz.

C++:
Option Explicit

Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, Toplam As Double
    Set S1 = Sheets("Hareketler")
    Toplam = Application.WorksheetFunction.SumIfs(S1.Range("G:G"), S1.Range("A:A"), TextBox1, S1.Range("H:H"), ">=" & CLng(CDate(TextBox2)), S1.Range("H:H"), "<=" & CLng(CDate(TextBox3)))
    MsgBox Toplam
End Sub
Çok teşekkür ederim tam istediğim gibi oldu çok sağolun Korhan Bey ilginiz için ☺️
 
Çok teşekkür ederim tam istediğim gibi oldu çok sağolun Korhan Bey ilginiz için ☺
Korhan bey bu kodda değişken kısmına combobox koydum ama listede aynı isimle başlayan veriler olduğu için hepsini buluyor mesala Denizbank arıyom ama listede Denizbank imece de kayıtlı bu kez ikisini birden toplatıyor sadece yazılan isimleri bulmasını nasıl sağlayabilrim
 
Yaptığınız değişikliği paylaşırsanız inceleme şansımız olur.
 
Yaptığınız değişikliği paylaşırsanız inceleme şansımız olur.
listede mesala denizbank var ve denizbank vadeli var ben denizbank seçince sade denizbankı toplasın ama
ikiside denizbank ile başladığı için onuda topluyor

Sub ototopla()
On Error Resume Next
Dim S1 As Worksheet, Toplam As Double
Set S1 = Sheets("girisler")
Toplam = Application.WorksheetFunction.SumIfs(S1.Range("K:K"), S1.Range("C:C"), ComboBox6, S1.Range("B:B"), ">=" & CLng(CDate(TextBox55)), S1.Range("B:B"), "<=" & CLng(CDate(TextBox56)))
TextBox61.Value = Toplam
End Sub
 
Koda göre eğer ilgili nesnede sadece Denizbank yazıyorsa bahsettiğiniz şekilde toplamaması gerekir.
 
Örnek dosya paylaşır mısınız?
 

Ekli dosyalar

İlk olarak TextBox61 nesnesinin Change olayını silin.

Daha sonra toplama işlemi aşağıdaki gibi güncelleyip deneyiniz.

C++:
Sub ototopla()
    Dim S1 As Worksheet, Toplam As Double
    Set S1 = Sheets("girisler")
    Toplam = Application.WorksheetFunction.SumIfs(S1.Range("K:K"), S1.Range("C:C"), ComboBox6, S1.Range("B:B"), ">=" & CLng(CDate(TextBox55)), S1.Range("B:B"), "<=" & CLng(CDate(TextBox56)))
    TextBox61.Value = Toplam
    TextBox61 = Format(Replace(TextBox61, ".", ","), "#,##0.00")
End Sub
 
İlk olarak TextBox61 nesnesinin Change olayını silin.

Daha sonra toplama işlemi aşağıdaki gibi güncelleyip deneyiniz.

C++:
Sub ototopla()
    Dim S1 As Worksheet, Toplam As Double
    Set S1 = Sheets("girisler")
    Toplam = Application.WorksheetFunction.SumIfs(S1.Range("K:K"), S1.Range("C:C"), ComboBox6, S1.Range("B:B"), ">=" & CLng(CDate(TextBox55)), S1.Range("B:B"), "<=" & CLng(CDate(TextBox56)))
    TextBox61.Value = Toplam
    TextBox61 = Format(Replace(TextBox61, ".", ","), "#,##0.00")
End Sub
Korhan bey size diyecek birsey bulamıyorum tek kelimeyle harikasınız ?☺️
 
TEXTBOX1'e A SÜTUNUNDA İLK TARİH GİRİLECEK
TEXTBOX2 'ye A SÜTÜNUNDAN SON TARİH GİRİLECEK
B SÜTUNUNDA TARİHLER ARASINDAKİ VERİLER BULUNMAKTA

İKİ TARİH ARASINDAKİ VERİLERİN "ORTALAMASINI" BULAN KODU TEXTBOX3' e NASIL YAZDIRABİLİRİM...
 
Merhaba,

Büyük harfle yazmanızın özel bir sebebi var mı?
 
Size sağlıklı cevap verebilmemiz için profilinizde görünen aşağıdaki bölüme "vba" değilde kullandığınız ofis sürümümü ve dilini yazmanız daha uygun olacaktır.

Excel Vers. ve Dili: vba

Bizlerin profiline bakarak güncelleyebilirsiniz.
 
Geri
Üst