• DİKKAT

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

Bir önceki ay gerçekleşen rezervasyonların başka bir sayfada listelenmesi

Katılım
2 Şubat 2007
Mesajlar
10
Excel Vers. ve Dili
MS EXCEL 2010 / TÜRKÇE
Günaydın,

Forum'daki konularda arandım ancak bir türlü çözüm bulamadımç

Bir yıllık operasyon listem var (CHART). Ayrı bir sayfada geçen ay gerçekleşen işleri listelemek istiyorum.(GEÇEN-AY)

Listelemek istediğim sayfada geçen ayın ilk ve son günlerini bulabiliyorum. Ama bu tarihlere göre CHART sayfasından satırları çağıramadım.

Düşeyara ile olacaktır diye düşünüyorum ama yinede mantığını kuramadım.
Yardımcı olabilirseniz sevinirim.


Selamlar,
Gökhan

ps. Bu arada, başka bir .xls dosyasından döviz kurları çektiğim için bazı hücreler bozulmuş olabilir.
 

Ekli dosyalar

Böyle işlemlerin formülle yapılması tavsiye edilmez, hem zor hem excel ve bilgisayarı yorar, hem formüller sürekli çalıştığı için çalışmanızı zorlaştırır. Tavsiyem makro kullanmaktır.

Aşağıdaki kodları bir modüle yapıştırıp deneyiniz:

Kod:
Sub listele()
Set s1 = Sheets("CHART")
Set s2 = Sheets("GEÇEN-AY")

eski = WorksheetFunction.Max(6, s2.Cells(Rows.Count, "B").End(3).Row)

son = s1.Cells(Rows.Count, "B").End(3).Row

If Month(s2.[C2]) = Month(s2.[C3]) And Year(s2.[C2]) = Year(s2.[C3]) Then
    If s2.[C2] <= s2.[C3] Then
        uyarı = MsgBox("Eski veriler silinip, " & Chr(10) & _
                WorksheetFunction.Text(s2.[C2], "dd/mm/yyyy") & " - " & WorksheetFunction.Text(s2.[C3], "dd/mm/yyyy") & " - " & Chr(10) & _
                "arası veriler listelensin mi?", vbYesNo)
        If uyarı = vbYes Then
            s2.Range("B6:J" & eski).ClearContents
            For i = 6 To son
                If s1.Cells(i, "F") >= s2.[C2] And s1.Cells(i, "F") <= s2.[C3] Then
                    yeni = s2.Cells(Rows.Count, "B").End(3).Row + 1
                    s2.Cells(yeni, "B") = s1.Cells(i, "F")
                    s2.Cells(yeni, "C") = s1.Cells(i, "H")
                    s2.Cells(yeni, "D") = s1.Cells(i, "M")
                    s2.Cells(yeni, "E") = s1.Cells(i, "V")
                    s2.Cells(yeni, "F") = s1.Cells(i, "X")
                    s2.Cells(yeni, "G") = s1.Cells(i, "Y")
                    s2.Cells(yeni, "H") = s1.Cells(i, "Z")
                    s2.Cells(yeni, "I") = s1.Cells(i, "AA")
                    s2.Cells(yeni, "J") = s1.Cells(i, "AB")
                End If
            Next
        End If
    Else
        MsgBox "İlk tarih son tarihten büyük olamaz!" & Chr(10) & "Lütfen düzeltiniz!", vbCritical
    End If
Else
    MsgBox "Girilen tarihler aynı ay ve yıla ait değil!" & Chr(10) & "Lütfen düzeltiniz!", vbCritical
End If

End Sub
 
Çok teşekkür ederim Yusuf bey, harika oldu. Bu makroyu başka raporlamalar içinde kullanmayı deneyeceğim.
 
Geri
Üst