Worksheetfunctıon.sumıf kodunda tek bir ıf değilde bir kaç ıf eklenebilir mi?

Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
Private Sub MIZAN()
Call BOS
Call TEMIZLE3
Sheets("ARAGCS").Select
Range("A3:I65000").ClearContents
Dim d As Double
Dim bs As Integer
Dim i As Long
Dim s1, s2, s3 As Worksheet
Set s1 = Sheets("İŞLEM")
Set s2 = Sheets("İŞLEM")
Set s3 = Sheets("ARAGCS")
For i = 3 To s1.Range("A65000").End(xlUp).Row
If s1.Cells(i, 1).Value = ComboBox27.Value Then
If WorksheetFunction.CountIf(s3.Range("B3:B65000"), s1.Cells(i, 2).Value) >= 1 Then
Else
Set bul = s2.Range("B1:B65000").Find(s1.Cells(i, 2).Value)
If Not bul Is Nothing Then
d = bul.Row
bs = s3.Range("A65000").End(xlUp).Row + 1
For H = 1 To 3
s3.Cells(bs, H).Value = s2.Cells(d, H).Value
Next

s3.Cells(bs, "F").Value = Round(WorksheetFunction.SumIf(s1.Range("B3:B65000"), s1.Cells(i, 2).Value, s1.Range("F3:F65000")), 2)
s3.Cells(bs, "G").Value = Round(WorksheetFunction.SumIf(s1.Range("B3:B65000"), s1.Cells(i, 2).Value, s1.Range("G3:G65000")), 2)
If s3.Cells(bs, "G").Value - s3.Cells(bs, "F").Value <> 0 Then
If s3.Cells(bs, "G").Value - s3.Cells(bs, "F").Value < 0 Then
s3.Cells(bs, "BA").Value = Round(s3.Cells(bs, "G").Value - s3.Cells(bs, "F").Value, 2)
s3.Cells(bs, "H").Value = Round(s3.Cells(bs, "BA").Value - s3.Cells(bs, "BA").Value - s3.Cells(bs, "BA").Value, 2)
s3.Select
Range("BA1:BA65536").ClearContents
Else
s3.Cells(bs, "I").Value = Round(s3.Cells(bs, "G").Value - s3.Cells(bs, "F").Value, 2)
End If
Else
End If
End If
End If
End If
Next
s3.Select
Range("A3:I65536").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("D3") _
, Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
ListBox1.RowSource = "ARAGCS!A3:I" & s3.Cells(65536, "A").End(xlUp).Row
Call BTOPLA
End Sub





MERHABA ARKADAŞLAR KODUM YUKARIDAKİ GİBİ.

TAM OLARAK İSTEDİĞİM ŞEY

KODUMDA TOPLAMA İŞLEMİ YAPILIYOR

s3.Cells(bs, "F").Value = Round(WorksheetFunction.SumIf(s1.Range("B3:B65000"), s1.Cells(i, 2).Value, s1.Range("F3:F65000")), 2)


BU "SUM" İŞLEMİNDEKİ "IF" DEĞERİM s1.Cells(i, 2).Value OLMAKTADIR. BUNU ÇOĞALTIPTA

s1.Cells(i, 2).Value DEĞERİ İÇERİSİNDEN
>DTPICKER11.VALUE - DEN KÜÇÜK OLANLARI
<DTPICKER12.VALUE - DEN BÜYÜK OLANLARI

TOPLAMASINI SAĞLAYABİLİR MİYİM.

İLGİNİZ İÇİN TEŞEKKÜR EDERİM.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bunu bir denermisiniz.

If DTPICKER11.Value < s1.Cells(i, 2).Value And DTPICKER12.Value > s1.Cells(i, 2).Value Then
s3.Cells(bs, "F").Value = Round(WorksheetFunction.SumIf(s1.Range("B3:B65000"), s1.Cells(i, 2).Value, s1.Range("F3:F65000")), 2)
End If
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
Sevgili halit hocam ekte örnek bir dosya gönderdim.


Yazdığınız kodu denedim fakat olmadı ne yazık ki

nasıl birşey yapabiliriz

çok teşekkür ederim.
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
Farklı şekilde anlatsam sanırım daha iyi olacak.


Bir döngüm var ve döngüde 2. Sütundaki değerlerin benzer olanlarını sum if ile topluyorum.

Buraya kadar tamam.

şunuda yapabilir miyiz ?

Aynı döngü içerisinde 2. Sütundaki benzer olanlarının 6.sütundaki tarihlerinin dtpıcker 'de belirttiğim tarihten önce olanlarının toplanmasını sağlayabilir miyiz.

Teşekkür ederim.
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
DEĞERLİ ARKADAŞLAR BENZER BİR KONU BULDUM AMA KENDİ FORMATIMA UYDURAMADIM

------------------------------------------------------------------------------------
Alt İKİ_KRİTERE_GÖRE_TOPLA ()
Sheets ( "sayfa2"). Range ( "C5") = Evaluate ( "= SUMPRODUCT ((Sayfa1! A2: A65536 =" BORC "")*( Sayfa1! B2: B65536 = 100) * (Sayfa1! F2: F65536 )) ")
End Sub
-------------------------------------------------------------------------------------

SANIRIM ARADIĞIM BU OLUCAKTI. YARDIM EDEBİLİRMİSİNİZ


s3.Cells(bs, "F").Value = Round(WorksheetFunction.SumIf(s1.Range("B3:B65000" ), s1.Cells(i, 2).Value, s1.Range("F3:F65000")), 2)



ŞU FORMATA UYDURABİLMEM İÇİN..
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
Sevgili evren hocam bu aralar sizi çok yordum ama ? Bunun içinde sizden istesek yardımı veya çözümü olup olmadığını söyleseniz çok sevinrim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
dosya aşagıdaki mesajda
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
HALİT HOCAM DENEDİM FAKAT OLMADI :s

NASIL HALLEDERİZ :s
ney olmadı anlıyamadım ben bir tane düğme koymuştum ona tıkladınmı

Kod:
If WorksheetFunction.CountIf(s3.Range("B3:B65000"), s1.Cells(i, 2).Value) >= 1 Then
senin kodlarında yukarıda görüldüğü gibi birden fazla olanları birleştir kodu var bu durumda ilk 1. sıradakilleri görerek ona göre aktarım yapıyor eğer iki tarih arasıda denk gelince 1. sıradaki bu tarihin içine girmeyince dolayısıyla 2.-3.- vesaire kayıtlarını almıyor bende budurumu başka bir makro yazarak ilk önce tarihleri bir kenara yazdırıyorum sonrada yazılanları aynı olanları toplatıyorum.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
dosya aşagıdaki mesajda
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bu dasyada farklı bir uygulama yaptım bir bakarmısınız.
 

Ekli dosyalar

Üst