İki tarih arasindaki verileri listelemek

Katılım
7 Ekim 2021
Mesajlar
66
Excel Vers. ve Dili
2016 Türkçe
Oncelikle merhabalar, yapmak istediğim şey şu:
Sayfa1'de A sütununda tarihler var ve b sutununda da ürün türü mevcut. Aynı şekilde sayfa2'de de a sütununda ürün türleri (mukerrer olmayacak sekilde) ve b sutununda da toplam miktarlarin yazilmasini istedigim bir sutun var.

Benim istegim iki textboxa tarihleri girerek bu tarih araliginda her bir ürün türünden kaç adet varsa sayfa2 ye her birinin toplamini yazmasi.

Ornegin sectigim tarih araliginda uc gun icin a urunu 5 gun icin b urunu varsa, sayfa 2 de a ürününün karsisina 3 b ürününün karşısına ise 5 yazsin.
Yardımcı olabilirseniz sevinirim.

Teşekkür ederim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Örnek dosya paylaşabilirseniz daha hızlı cevap alabilirsiniz.

Altın üye değilseniz harici paylaşım sitelerine dosya yükleyerek link paylaşabilirsiniz.
Yüklediğiniz dosya için aşağıdakilere dikkat ediniz.
1. link erişine açık olmalı
2. dosyanızda açma ya da koruma şifreleri olmamalı
3. kişisel veri içermemeli

Örnek paylaşım siteleri
dosya.co
upload.com
wetransfer
drive
 
Katılım
7 Ekim 2021
Mesajlar
66
Excel Vers. ve Dili
2016 Türkçe
Örnek dosya paylaşabilirseniz daha hızlı cevap alabilirsiniz.

Altın üye değilseniz harici paylaşım sitelerine dosya yükleyerek link paylaşabilirsiniz.
Yüklediğiniz dosya için aşağıdakilere dikkat ediniz.
1. link erişine açık olmalı
2. dosyanızda açma ya da koruma şifreleri olmamalı
3. kişisel veri içermemeli

Örnek paylaşım siteleri
dosya.co
upload.com
wetransfer
drive


Şu linke dosyamı yükledim hocam.
 
Son düzenleme:

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Butonunuza aşağıdaki kodları tanımlayabilirsiniz.

C++:
Private Sub CommandButton1_Click()
    Tar1 = CDate(TextBox1)
    Tar2 = CDate(TextBox2)
    Veri = Worksheets("VERİ").Range("A6").CurrentRegion.Value
    Set Dict = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(Veri)
        If Veri(i, 1) >= Tar1 And Veri(i, 1) <= Tar2 Then
            If Not Dict.Exists(Veri(i, 2)) Then
                Dict.Add Veri(i, 2), 1
            Else
                Dict(Veri(i, 2)) = Dict(Veri(i, 2)) + 1
            End If
        End If
    Next i
    Worksheets("İSTATİSTİK").Range("A2:B" & Rows.Count).ClearContents
    For i = 0 To Dict.Count - 1
        Worksheets("İSTATİSTİK").Range("A2").Offset(i, 0) = Dict.Keys()(i)
        Worksheets("İSTATİSTİK").Range("A2").Offset(i, 1) = Dict.Items()(i)
    Next i
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu gibi işlemleri kendi başınıza halledebileceğiniz tarzda kodlar vermeye çalışıyoruz ki sizlerin gelişimine katkısı olacaktır.

Eğer tablo formatınız aynı ise yani isteğinizde belirttiğiniz üzere sadece yerleri değiştirdiyseniz,
bir önceki mesajımda forum penceresinde görülen KIRMIZI ifadeleri değiştirmeniz yeterli olacaktır. Bunlar sizin sayfa adları ve hücre başvurularınızdır.
 
Katılım
7 Ekim 2021
Mesajlar
66
Excel Vers. ve Dili
2016 Türkçe
Hocam denedim sadece kırmızı yerleri fakat olmadi. Çünkü eski ve yeni dosyada olan farklılıklar şunlar:

Eski dosyada tarihler veri sayfası altinda a7'den itibaren başlıyordu
Yeni dosyada tarihler veri sayfası altinda G7'den itibaren başlıyor
Eski dosyada Ürün Türleri veri sayfasinda B7'den başlıyordu
Yeni dosyada Ürün Türleri veri sayfasinda R7'den başlıyor
Eski dosyada veri kaydinin yapılacağı Ürün Türleri veri sayfasinda A2'den başlıyordu
Yeni dosyada veri kaydinin yapılacağı Ürün Türleri İSTATİSTİK sayfasinda A5'den başlıyor
Eski dosyada miktarların yazilacagi sütun İSTATİSTİK sayfasinda B2'den başlıyordu
Yeni dosyada miktarların yazilacagi sütun İSTATİSTİK sayfasinda B5'den başlıyor

Üstte yer alan dosyada da örnek mevcut zaten.
Teşekkür ederim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Yeni dosyanızda bu kodlar çalışmaz.
Arada boş sütun bırakamazsınız.

Sorunuza daha hızlı çözüm istiyorsanız, sayfalarınızı ve verileri doğru formatta paylaşmalısınız.

İlk mesajınızdan sonra istediğim örnek dosyayı oluşturan ve paylaşan sizsiniz.
Madem dosyanızın formatı bu değil neden paylaşıyorsunuz.

Hem basit bir iki işlem biz uğraşıyoruz ki bundan zerre gocunmuyorum hem de sizin sorunuz çözümsüz beklemekle kalıyor.
İşin bir diğer yanı ise bir başka arkadaşın sorusuna yardımcı olmaya vakit ayıramıyoruz.

Umarım meramımı anlatabilmişimdir.

Sizden ricam dosyanızı eğer son paylaştığınız dosya ise teyit ediniz.
Değilse, arada boşluklar varsa oralara gelişigüzel veri koyabilirsiniz. Bize limitlerinizi söylemelisiniz.
Sayfa adları- İlk sütun - son sütun - ilk satır - son satır - boş sütun ya da satırlar - başlık satırı - başlık sütünü - başlık isimleri vs vs.
 
Katılım
7 Ekim 2021
Mesajlar
66
Excel Vers. ve Dili
2016 Türkçe
Hocam söylediklerinizde haklısınız fakat benim çalıştığım ortamda internet bağlantısı yok ve pc herhangi bir aygıta kapalı bu nedenle orjinal dosyayı gönderemedim. Şimdi onun gibi bir dosya gönderdim. Satır sayısı 10 bine kadar gidiyor. Bu şekilde yapabilirseniz sevinirim.

 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Private Sub CommandButton1_Click()
    Tar1 = CDate(TextBox1)
    Tar2 = CDate(TextBox2)
    Veri = Worksheets("VERİ").Range("G6").CurrentRegion.Value
    Set Dict = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(Veri)
        If Veri(i, 7) >= Tar1 And Veri(i, 7) <= Tar2 Then
            If Not Dict.Exists(Veri(i, 18)) Then
                Dict.Add Veri(i, 18), 1
            Else
                Dict(Veri(i, 18)) = Dict(Veri(i, 18)) + 1
            End If
        End If
    Next i
    Worksheets("İSTATİSTİK").Range("A2:B" & Rows.Count).ClearContents
    For i = 0 To Dict.Count - 1
        Worksheets("İSTATİSTİK").Range("A2").Offset(i, 0) = Dict.Keys()(i)
        Worksheets("İSTATİSTİK").Range("A2").Offset(i, 1) = Dict.Items()(i)
    Next i
End Sub
 
Katılım
7 Ekim 2021
Mesajlar
66
Excel Vers. ve Dili
2016 Türkçe
Teşekkür ederim sorun çözüldü. Elinize sağlık hocam.
 
Üst