comboboxta seçilen yıla ait veriler

şehiriçi

Altın Üye
Katılım
1 Ağustos 2013
Mesajlar
563
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
12-03-2025
Merhaba Excel Dostları ,
Dosyamda comboboxtan diyelim ki 2020 yılını seçtiğim zaman sadece 2020 yılı verilerinin veya başka bir yılı seçersem o yılın verileri gelsin istiyorum , Bir yere kadar geldim ama datediff fonksiyonunu yapamadım desteğinizi bekliyorum teşekkürler
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
O kısmı aşağıdaki gibi yaspabilirsin.
C++:
            TopW = 0: TopF = 0
            For i = 2 To sonsatir
                If Cells(i, 3) = "arpa" And Year(Cells(i, 2)) = ComboBox1.Value * 1 Then
                    If Cells(i, 5) = "f" Then
                        TopF = TopF + Cells(i, 4)
                    Else
                        TopW = TopW + Cells(i, 4)
                    End If
                End If
            Next i
            TextBox1.Value = TopW + TopF
            TextBox2.Value = TopW
            TextBox3.Value = TopF
 

şehiriçi

Altın Üye
Katılım
1 Ağustos 2013
Mesajlar
563
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
12-03-2025
ÖmerFaruk bey öncelikle tşk istediğim bir eksikle oldu o da:
If Cells(i, 3) = "arpa" And Year(Cells(i, 2)) = ComboBox1.Value * 1 Then bu satırdaki "arpa" ifadesi Arpa olunca kod çalışmıyor.
Bu büyük küçük harf duyarlığı olmasın istiyorum yani arpa yazsamda ArPa yazsamda kod çalışmalı , mümkünmüdür teşwekkürler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki gibi deneyiniz.
Kod:
If ucase(Cells(i, 3)) = "ARPA" And Year(Cells(i, 2)) = ComboBox1.Value * 1 Then
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub ComboBox1_Change()
    Dim sonSatir As Double
    sonSatir = Sheets("hububat_alis").Cells(Rows.Count, 1).End(xlUp).Row

    veriler = Sheets("hububat_alis").Range("A2:E" & sonSatir).Value
    Dim w(1 To 2, 1 To 2)
    For i = 1 To UBound(veriler)
        If ComboBox1.Text = "Tümü" Or ComboBox1.Text = Year(veriler(i, 2)) Then
            If WorksheetFunction.Proper(veriler(i, 5)) = "W" Then r = 1 Else r = 2
            If WorksheetFunction.Proper(veriler(i, 3)) = "Arpa" Then c = 1 Else c = 2
            w(r, c) = w(r, c) + veriler(i, 4)
        End If
    Next i

    TextBox1.Text = Format(w(1, 1) + w(2, 1) + 0, "#,##0")
    TextBox2.Text = Format(w(1, 1) + 0, "#,##0")
    TextBox3.Text = Format(w(2, 1) + 0, "#,##0")

    TextBox9.Text = Format(w(1, 2) + w(2, 2) + 0, "#,##0")
    TextBox10.Text = Format(w(1, 2) + 0, "#,##0")
    TextBox11.Text = Format(w(2, 2) + 0, "#,##0")

    TextBox17.Text = Format(w(1, 1) + w(1, 2) + w(2, 1) + w(2, 2) + 0, "#,##0")
    TextBox18.Text = Format(w(1, 1) + w(1, 2) + 0, "#,##0")
    TextBox19.Text = Format(w(2, 1) + w(2, 2) + 0, "#,##0")

End Sub

Private Sub UserForm_Initialize()
    Dim sonSatirTarih%
    sonSatirTarih = Sheets("veri").Cells(Rows.Count, "A").End(xlUp).Row
    ComboBox1.RowSource = "veri!A2:A" & sonSatirTarih
End Sub
 

şehiriçi

Altın Üye
Katılım
1 Ağustos 2013
Mesajlar
563
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
12-03-2025
sayın veyselemre öncelikle hem soru sorup hemde geç dönüş yaptığım için özür dilerim . 2 sebep 1. si işlerim 2.si ise henüz diziler konusu nu tam kavrayabilmiş değilim dünden beri hem diziler konusunu hemde sizin yazdığınız kodu anlamaya kavramaya çalıştım biraz zor oldu ama yazdığınız kodu anladığımı zannediyorum, çok teşekkürler ama nerdeyse pazar günümün tamamını ayırdığım bu kod ile ilgili şunu sormama müsaade edin
1 -Eğer arpa buğdayın haricinde birde yulaf olsa idi bu kod nasıl olmalıydı
2_TextBox19.Text = Format(w(2, 1) + w(2, 2) + 0, "#,##0") burdaki + 0, ın görevi nedir ne işe yarıyor
yulaf eklemesiyle güncellenmiş dosya ekte
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
+0 lar, ilgili kriterlerde alış olmadığı zaman sonuç olarak 0 değerini alarak textboxun boş kalmasını önlemek ve işlemin sayısal işlem olduğunu kısaca anlatmak için kullanıldı.
Kod:
Private Sub ComboBox1_Change()
    Dim sonSatir As Long
    Dim veriler() As Variant
    Dim i As Long
    Dim w(1 To 2, 1 To 3)
    Dim r As Long
    Dim c As Long

    sonSatir = Sheets("hububat_alis").Cells(Rows.Count, 1).End(xlUp).Row
    veriler = Sheets("hububat_alis").Range("A2:E" & sonSatir).Value

    For i = 1 To UBound(veriler)
        If ComboBox1.Text = "Tümü" Or ComboBox1.Text = Year(veriler(i, 2)) Then
            If WorksheetFunction.Proper(veriler(i, 5)) = "W" Then r = 1 Else r = 2
            If WorksheetFunction.Proper(veriler(i, 3)) = "Arpa" Then
                c = 1
            ElseIf WorksheetFunction.Proper(veriler(i, 3)) = "Buğday" Then
                c = 2
            Else
                c = 3
            End If
            w(r, c) = w(r, c) + veriler(i, 4)
        End If
    Next i

    TextBox1.Text = Format(w(1, 1) + w(2, 1) + 0, "#,##0")
    TextBox2.Text = Format(w(1, 1) + 0, "#,##0")
    TextBox3.Text = Format(w(2, 1) + 0, "#,##0")

    TextBox9.Text = Format(w(1, 2) + w(2, 2) + 0, "#,##0")
    TextBox10.Text = Format(w(1, 2) + 0, "#,##0")
    TextBox11.Text = Format(w(2, 2) + 0, "#,##0")
    
    TextBox20.Text = Format(w(1, 3) + w(2, 3) + 0, "#,##0")
    TextBox21.Text = Format(w(1, 3) + 0, "#,##0")
    TextBox22.Text = Format(w(2, 3) + 0, "#,##0")

    TextBox17.Text = Format(w(1, 1) + w(1, 2) + w(1, 3) + w(2, 1) + w(2, 2) + w(2, 3) + 0, "#,##0")
    TextBox18.Text = Format(w(1, 1) + w(1, 2) + w(1, 3) + 0, "#,##0")
    TextBox19.Text = Format(w(2, 1) + w(2, 2) + w(2, 3) + 0, "#,##0")

End Sub
 

şehiriçi

Altın Üye
Katılım
1 Ağustos 2013
Mesajlar
563
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
12-03-2025
çok teşekkürler eline , emeğine sağlık . bunu dosyamda geliştirmeye çalışacağım ,ancak sizde takdir edersiniz ki , hububat çeşitleri 2-3 kalemden ibaret değil örneğin Arpa,Buğday,Yulaf,Mısır,Pirinç,Çavdar...vs diye çoğaltılabilir oyüzden elbette şimdilik bu kod üzerinde işlem yaparken yeni aklıma gelen yılları bir comboboxta hububat çeşitlerini ayrı bir comboboxta f ve w ayrımını ayrı bir comboboxta yeni bir taslak hazırlayınca tekrar soruma devam edeceğim , teşekkürler .
 
Üst