• DİKKAT

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

LİSTEDEN AYLARA GÖRE RAPOR ALMAK.

  • Konbuyu başlatan Konbuyu başlatan alpay1
  • Başlangıç tarihi Başlangıç tarihi
Katılım
22 Ekim 2004
Mesajlar
178
LÝSTEDEN AYLARA G�RE RAPOR ALMAK.

Değrli Arkadaşlar,
Sayfa1 de SIRA NO-TARİH-FİRMA-BORÇ-ALACAK-BAKİYE sütunları bulunan bir liste var.Bu listeden aylara göre rapor almak istiyorum.Ã?rneğin ocak ayını seçtiğimde sadece ocak ayını alıp başka bir sayfada yada listenin yan tarafındaki sütunlarda listeleyecek.
Ã?rnek dosyayı gönderiyorum.Oradada açıklama var.Yardımcı olursanız sevinirim.
Teşekkürler.
 
Eğer makrolar ile aranız iyi değilse, bu iş için Data>Filter'da Tarih sütununa istediğiniz tarih aralığını girmek yeterli olmazmı. Doğrudan aynı yerde aynı sonucu görürsünüz, istersenizde alanı seçip, ctrl+c tuşları ile kopyalar ve istediğiniz yere yapıştırabilirsiniz.

Ama öğrenmek için veya illa makro ile yapmak gerekiyor derseniz bakayım.
 
Kusura bakmayın, dosyanıza userform eklemeye çalıştığınızı şimdi tekrar bakınca gördüm..

Başka uğraşan olmazsa (birde sn inflexible'ın sorusu vardı) bu iki soruya bu gece bakabilirim.. Daha önce uğraşan olursada wellcome.
 
Sayın danersin,
Elinize sağlık çok iyi olmuş.Kusursuz çalışıyor.Benim işimi gördü.
.............

Vaktiniz olursa "İKİ TARİH ARASINI AYNI ÞEKİLDE LİSTELEME" ile ilgilide bir çalışma yapabilirseniz.Sevinirim.Bu kodlar işimi gördü ama merak ettiğim için.

İyi çalışmalar.
Teşekkürler.
 
Yardımcı olabildiğime sevindim. :)

Umarım kodu incelersiniz, hataya yol açmamak için önceki alanı temizleme ile ilgili bir açıklama eklemiştim..

iki tarih arası için fikir vermek amacı ile ;
fazla birşey değiştirmeye gerek yok aslında
arananay yerine basgun ve songun deriz. Bu tarihleri
seçmek için bir calendar nesnesi yerleştirilebilir.
bak değişkenine doğrudan hücre değerini okuturuz,
Kod:
If bak = arananay Then
satırı yerine
Kod:
If bak>=basgun or bak<=songun then

Kolay gelsin.
 
Çok soruyorum ama takıldığım bir taraf var.Bunu hesap etmemiştim.Benim çalışmamda süzülecek tarih 14 Satırdan itibaren başlıyor.Aşağıdaki kodlarda,
Kod:
    Range("L14:R164").Select
    Selection.ClearContents
j = 2
t = 9
Do While Cells(j, 1) <> ""
bak = Choose(Month(Cells(j, 2)), "OCAK", "ÞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AÐUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
If bak = arananay Then
            'TAÞIDIÐINIZ YERDE SIRA NONUN NASIL OLMASINI İSTEDİÐİNİZİ ANLAMADIÐIM İÇİN AYNI SIRA NOYU TAÞITTIM,
    For k = 1 To 7
    Cells(t, k + 11) = Cells(j, k)
    Next k
    t = t + 1
    End If
    j = j + 1
    Loop
j = 2 satır başlangıcı sanıyorum.Değiştirmeyi denedim ama olmadı.
 
Evet J yi değiştireceksiniz.
1. sütunda hücre falan atlamıyorsunuz değilmi..
denedim sorun olmaması lazım..
Nasıl bir sorunla karşılaşıyorsunuz..
 
Kodları aşağıdaki şekilde denedim olmadı.
Kod:
Private Sub CommandButton1_Click()
j = 14
t = 14
Do While Cells(j, 1) <> ""
bak = Choose(Month(Cells(j, 2)), "OCAK", "ÞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AÐUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
If bak = arananay Then
    For k = 1 To 7
    Cells(t, k + 11) = Cells(j, k)
    Next k
    t = t + 1
    End If
    j = j + 1
    Loop

End Sub
 
sn.Alpay1 nasıl bir hata oluştuğunu anlatırsanız iyi olur.
 
(Public arananay) Bu Kodun tam açıklamasıyla örnek yapabilirmisiniz, raporu L9 değilde L1 de almak istersek ne yapmamız lazım..
 
Bu dosyada arananay değişkenine Public dememe gerek yoktu ama programın ilerleyen aşamalarında lazım olabilir gibi geldi ve koydum.

Kod içinde kullanacağınız bir değişkene hiç bir bildirim yapmazsanız sadece içinde bulunduğu prosedürde etkili olur, private ile bildirim yaparsanız tüm modülde etkili olur, public ile bildirim yaparsanız tüm modüllerde etkili olur.

programda J kaynak bilginin olduğu satırları kontrol ediyor
T ise hedef alanın satır sayısını, yani T'yi 1,(veya başlıklardan sonra 2) yaparsanız L1'e yazar.
 
Teşekürler,Birde yazılan aylık dökümleri rapor sayfasına yazdırmak istersek nasıl kodlamamız lazım..
 
Cells(t, k + 11) = Cells(j, k)
yerine
ilk bölümde hangi sayfaya yazdıracaksak onu belirtiriz.
worksheets("rapor").Cells(t, k + 11) = Cells(j, k)
 
Sayın danersin,
Çok ilginç bir sorun var.Aynı kodu denediğim bütün dosyalarda çalıştırıyorum.Fakat asıl benim üzerinde çalıştığım cari.xls dosyasında çalışmıyor.O dosyadan ayny sayfayı kopyalayıp başka dosyada bir sayfaya yapıştırıyorum.Kodu değiştirilmiş haliyle orda deniyorum çalışıyor."cari.xls" dosyasında neden çalışmadığını birtürlü anlayamadım.
Kodda baştaki j yi j = 14 yaptım acaba aşağıdaki j = 2 yide değiştirecekmiyim?
Onuda denedim gerçi olmadı.
Yani sizin yazdığınız kodda bir sorun yok.
Sanırım sorun benim dosyada.
 
Ama çalışmıyor demekle neyi kastettiğinizi anlatmadığınız sürece tahmin etmek çok zor oluyor. Yanlış verimi taşıyor yoksa hatamı veriyor..

Hata veriyorsa sayfada selection_change veya calculate vs olayının altındaa çalışan başka bir prosedür varsa onu bir yollayın , çatışmamı var bakalım.

Yanlış veri getiriyorsa zaten iki tane sayaç var j ve t, onların ilk değerleri ile oynayarak bulabilmeniz lazım doğrusunu..

j=2 diye Cells(j, 2)'yi kastediyorsanız hayır, o ikinci sütundaki tarihin ayını tespit için
 
Hata vermiyor.Butona tıklıyorum hata vermemesine rağmen işlemi yapmıyor.Ama dediğim gibi aynı sayfayı kopyalayıp başka bir dosyaya yapıştırıyorum.Aynı makroyuda oraya yazıyorum.Orada çalışıyor.Acaba benim "cari." dosyasında bir çakışma varda ondanmı çalışmıyor diye düşündüm ama HATA vermiyor.
 
Geri
Üst