• DİKKAT

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

Makroyla basit bir tablo

Katılım
16 Mart 2006
Mesajlar
11
Değerli Üstadlar;
bir listem var ve binlerce satırdan oluşmakta.
Geliş tarihine göre o tarih aralığı içinde şahıs bazında J sütunundaki kime kaç adet dosya gelmiş, o şahıs kaç dosya çıkarmış ve kalan kaç adet diye basit bir tabloya ihtiyacım var.

Yardımlarınız için şimdiden teşekkürler...
 
Aşağıdaki kodu bir modul sayfasına kopyalayarak çalıştırınız. Bir butona da bağlayabilirsiniz

Kod:
Sub derle()
Set sh1 = Sheets("Sayfa1")
Set sh2 = Sheets("Sayfa2")
son1 = sh1.Cells(65536, 1).End(xlUp).Row
sh2.Columns("A:D").ClearContents
sh2.Cells(1, 1) = "İsim"
sh2.Cells(1, 2) = "Gelen"
sh2.Cells(1, 3) = "Çıkan"
sh2.Cells(1, 4) = "Kalan"
For i = 1 To son1
  son2 = sh2.Cells(65536, 1).End(xlUp).Row
  Set rg = sh1.Range("J2:J" & i + 1)
  x = Application.WorksheetFunction.CountIf(rg, sh1.Cells(i + 1, 10))
  If x = 1 Then
     sh2.Cells(son2 + 1, 1) = sh1.Cells(i + 1, 10)
     sh2.Cells(son2 + 1, 2) = Application.WorksheetFunction.CountIf(sh1.Range("J2:J" & son1), sh1.Cells(i + 1, 10))
    For j = 2 To son1
       If sh1.Cells(j, 10) = sh2.Cells(son2 + 1, 1) And sh1.Cells(j, 7) <> 0 Then
       deger = deger + 1
       End If
    Next j
    sh2.Cells(son2 + 1, 3) = deger
    deger = 0
    sh2.Cells(son2 + 1, 4) = sh2.Cells(son2 + 1, 2) - sh2.Cells(son2 + 1, 3)
  End If
  Set rg = Nothing
Next i
sh2.Select
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
 
te&#351;ekk&#252;rler fbc...
butona da atad&#305;m ama &#231;al&#305;&#351;mad&#305;... &#246;rnek bir dosya ekleyebilirseniz sevinirim...
 
Te&#351;ekk&#252;rler fpc ama k&#252;&#231;&#252;k bir sorun kalm&#305;&#351;....
&#214;ncelikle L s&#252;tunundaki tarihleri ay baz&#305;nda ay&#305;rt edip sonra isimleri ve daha sonra da &#231;&#305;kanlar&#305; yazmas&#305; gerek.

Yani bana laz&#305;m olan; A&#287;ustos ay&#305;nda (01.08.2007-31.08.2007) tarihleri aras&#305;nda ali'ye gelen dosya ve ayn&#305; tarihler aras&#305;nda alinin &#231;&#305;kard&#305;&#287;&#305; dosya say&#305;s&#305; olmal&#305;yd&#305;...
Bu listeyi her ay Ocak, &#351;ubat, mart ...bu &#351;ekilde almam&#305;z gerek...
 
Alternatif, ay ve y&#305;l&#305; sayfadan veya inputboxla alabilirsiniz.
Kod:
Sub Ozetle()
    ay = 8: yil = 2007
    
    Application.ScreenUpdating = False
    Set s1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    son1A = s1.[a65536].End(3).Row
    S2.[A:H].Delete
    s1.Range("G1:G" & son1A & ",J1:J" & son1A & ",L1:L" & son1A).Copy S2.[F1]
    S2.Select
    sonG = [G65536].End(3).Row
    Range("G1:G" & sonG).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True
    [A1].Copy [A1:D1]
    [A1:D1] = [{"&#304;sim", "Gelen",  "&#199;&#305;kan" ,  "Kalan" }]
    sonA = [a65536].End(3).Row
    alan1 = Range("g2:G" & sonG).Address
    alan2 = Range("h2:H" & sonG).Address
    alan3 = Range("f2:F" & sonG).Address
    Range("B2:B" & sonA).Formula = "=SUMPRODUCT(--(MONTH(" & alan2 & ")=" & ay & "),--(YEAR(" & alan2 & ")=" & yil & "),--(" & alan1 & "=A2))"
    Range("C2:C" & sonA).Formula = "=SUMPRODUCT(--(MONTH(" & alan3 & ")=" & ay & "),--(YEAR(" & alan3 & ")=" & yil & "),--(" & alan1 & "=A2))"
    Range("D2:D" & sonA).Formula = "=B2-C2"
    Range("B2:D" & sonA).Value = Range("B2:D" & sonA).Value
    [F:H].Delete
    [A:D].EntireColumn.AutoFit
    Set s1 = Nothing
    Set S2 = Nothing
    Application.ScreenUpdating = True
End Sub
 
say&#305;n fbc sizin &#246;rne&#287;iniz tam istedi&#287;im gibi ama &#351;u tarih aral&#305;&#287;&#305;n&#305; da belirleyerek raporu alabilirsek tam i&#351;ime yarayacak...

veyselemre ilginizden dolay&#305; sizede &#231;ok te&#351;ekk&#252;r ederim ama fbc nin &#246;rne&#287;i tam olarak istedi&#287;ime yak&#305;n...
 
AS3434 VE fpc &#231;ok te&#351;ekk&#252;r ederim iki &#246;rnek de &#231;ok g&#252;zel olmu&#351; ellerinize sa&#287;l&#305;k...
 
Geri
Üst