• DİKKAT

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

İki tarihten küçük olanı seçmek

Katılım
27 Eylül 2008
Mesajlar
137
Excel Vers. ve Dili
2003-tÜRKÇE
Merhabalar,
Çalışma sayfasında Asütununda tarihler B sütununda ise Müşteri numaralırı olsun, Aynı müşterinin farkı tarihlerde işlemleri mevcut, örneğin 1 nolu müşterinin 01.10.2009, 10.10.2009, 02.12.2009 gibi farkıl tarihlerde işlemleri olabilir aynı şekilde 2 nolu müşterininde 2 veya daha fazla tarihlerde işlemleri olabilir. Benim amacım listedeki her müşterinin ilk işlem tarihi alarak o satırı Rapor Sayfasına aktarmasını sağlamak. Müşteri işlemi tek ise bu satırıda olduğu gibi aktarmak. Aynı gün iki işlemi var ise herhengibirini aktarabilir.
Yardımcı olacaklara şimdiden Teşekkürler

A Sütunu------B sütunu
Tari-----------Müşteri no
01.10.2009-------1___Rapor sayfasına aktarılacak satır
10.10.2009-------1
01.12.2009-------1
01.10.2009-------2__Rapor sayfasına aktarılacak satır
01.10.2009-------2
01.10.2009-------3__Rapor sayfasına aktarılacak satır
01.11.2009-------4
05.10.2009-------4__Rapor sayfasına aktarılacak satır
11.10.2009-------4
12.12.2009-------4
 
yanıt

Kod:
Sub raporla()
Dim sat, s As Long
Sayfa2.[a2:n10000] = Empty
s = 2
    For sat = 2 To Sayfa1.Cells(65536, "a").End(xlUp).Row
        If Sayfa1.Cells(sat, "a") >= Sayfa1.[h2] And Sayfa1.Cells(sat, "a") <= Sayfa1.[ı2] And Sayfa1.Cells(sat, "b") = Sayfa1.[j2] Then
            Sayfa1.Cells(sat, "a").EntireRow.Copy Sayfa2.Cells(s, "a")
            s = s + 1
        End If
    Next
End Sub
 

Ekli dosyalar

Ziya bey teşekkür ederim.
Yanlız ben yanlışmı ifade ettim bilmiyorum ama benim istediğim liste her müşteri için ilk işlem tarihine ait satırı alıp Rapor sayfasına kopyalanması.
Tekrar bakabilirmisiniz
teşekkür ederim
 
yanıt

Kod:
Sub raporla()
Dim sat, s As Long
Sayfa2.[a2:C10000] = Empty
Sayfa1.[b2:b1000].Font.ColorIndex = 0
s = 2
    For sat = 2 To Sayfa1.Cells(65536, "a").End(xlUp).Row
        If WorksheetFunction.CountIf(Sayfa1.Range("b2:b" & sat), Sayfa1.Cells(sat, "b")) > 1 Then
            Sayfa1.Cells(sat, "b").Font.ColorIndex = 3
        End If
    Next
    For sat = 2 To Sayfa1.Cells(65536, "a").End(xlUp).Row
        If Sayfa1.Cells(sat, "b") = Sayfa1.[ı2] And Sayfa1.Cells(sat, "b").Font.ColorIndex <> 3 Then
        
            Range(Sayfa1.Cells(sat, "a"), Sayfa1.Cells(sat, "c")).Copy Range(Sayfa2.Cells(s, "a"), Sayfa2.Cells(s, "c"))
            s = s + 1
        End If
    Next
End Sub
 

Ekli dosyalar

Ziya hoca emeğinize sağlık.
Sizi yoruyorum ama ı2 hücresine müşteri numarası giriyoruz sonra rapor sayfasına aktarıyor.
Benim isteğim ı2 hücrasine hiç değer girmeden B sütunundaki müşteri numaralarını tarayarak tüm müşterilerin ilk işlem tarihine ait satırı kopyalasın yani rapor sayfasında 1,2,3,4,5,6 nolu müşterilerin tamamanın ilk işlem tarıhını aktarsın.
Bu şekilde olabilirmi?
kusurabakmayın lütfen
 
yanıt

Kod:
Sub raporla()
Dim sat, s As Long
Sayfa2.[a2:C10000] = Empty
Sayfa1.[b2:b1000].Font.ColorIndex = 0
s = 2
    For sat = 2 To Sayfa1.Cells(65536, "a").End(xlUp).Row
        If WorksheetFunction.CountIf(Sayfa1.Range("b2:b" & sat), Sayfa1.Cells(sat, "b")) > 1 Then
            Sayfa1.Cells(sat, "b").Font.ColorIndex = 3
        End If
    Next
    For sat = 2 To Sayfa1.Cells(65536, "a").End(xlUp).Row
        If Sayfa1.Cells(sat, "b").Font.ColorIndex <> 3 Then
            Range(Sayfa1.Cells(sat, "a"), Sayfa1.Cells(sat, "c")).Copy Range(Sayfa2.Cells(s, "a"), Sayfa2.Cells(s, "c"))
            s = s + 1
        End If
    Next
End Sub
 
Geri
Üst