Belirlenen hesap numaralarını bir başlık altında toplam

Katılım
23 Eylül 2004
Mesajlar
91
Selamlar,

Aşağıdaki kod ile mizan adlı dosyadan belirlenen hesapları belirlenen tarih aralığında aşağıdaki başlıklar halinde toparlayarak Genel Gider Tablosu oluşturma istiyorum. Yani hesap numarası 720 01 01, 730 01 01 olanların Ocak - Temmuz aralığındaki değerlerini toplayarak gen_gid sayfasının 11,30 nolu hücresine yzdırmak istedim. Diğerlerinide sırasıyla 12,30 - 13,30 ...şeklinde gen_gid sayfasına yazdırmak istiyorum. Fakat al(x, 1) vektörüne değer ataması yapamadığımdan kendisi ile toplatma işleminide yapamadım. Bu işlemi yaptıktan sonra Maaş+ ikramiye ve diğer başlıklarıda aynı şekilde toplayıp gen_gid sayfasındaki ilgili hücresine getirmek için kodda nasıl bir değişiklik yada ekleme yapacağım konusunda yardımcı olabilirseniz seninirim.
Maaş-İkr.Primler
SSK+İşsizlik İşveren
Tazminatlar
Sosyal Yardımlar Vg


Sub gen_gid()
Set s1 = Workbooks("veri").Sheets("par")
Set S2 = Workbooks("but").Sheets("mizan")
Set S3 = Workbooks("but").Sheets("gen_gid")
bastay = s1.Cells(57, 3).Value
bittay = s1.Cells(57, 4).Value
farkay = s1.Cells(57, 5).Value

s2sonsat = S2.[b65536].End(3).Row

ReDim al(s2sonsat, 1)

For x = 4 To s2sonsat
For z = 1 To farkay
If S2.Cells(x, 1) = "720 01 01" Or S2.Cells(x, 1) = "730 01 01" Or S2.Cells(x, 1) = "730 02 01" Then
al(x, 1) = al(x, 1) + s1.Cells(x, 3 + z + bastay).Value
s1.Cells(11, 30) = al(x, 1)
End If
Next z
Next x

Calculate

End Sub
 
Katılım
3 Ağustos 2004
Mesajlar
87
fazladan bir değişken tanımlayıp (integer yada long) for-next döngüsü içinde al dizisini 1 den başlatıp birde öyle dene
dim i as integer
ReDim al(s2sonsat, 1)
i=0
For x = 4 To s2sonsat
For z = 1 To farkay
If S2.Cells(x, 1) = "720 01 01" Or S2.Cells(x, 1) = "730 01 01" Or S2.Cells(x, 1) = "730 02 01" Then
al(i, 1) = al(i, 1) + s1.Cells(x, 3 + z + bastay).Value
s1.Cells(11, 30) = al(x, 1)
End If
Next z
i=i+1
Next x ... gibi
 
Katılım
23 Eylül 2004
Mesajlar
91
Selamlar,

Maaş-İkr.Primler ana başlığı için;

Kodaki bir iki hatayı düzelttikten sonra a1 dizinine 720 01 01 nolu hesabın ocak-Temmuz arası toplam tutarı olan 306.664,51 değerini buldum ve gen_gid tablosunda istenilen hücreye aktardım. Fakat bu değerin üzerine kod'danda anlaşılacağı gibi 730 02 01 hesabın ve daha birkaç hesabında Ocak-Temmuz arası değerlerini 306.664,51 değerinin üzerine toplatıp gen_gid tablosuna aktarmak istiyorum.

SSK+İşsizlik İşveren alt başlığı ve diğer alt başlıkların toplamınıda gen_gid tablosuna aktarmak için kodda nasıl bir değişiklik yapacağım hala çözemedim.

Yardımcı olabilirseniz Sevinirim.

Teşekkürler.
 
Katılım
23 Eylül 2004
Mesajlar
91
Selamlar,

Maaş-İkr.Primler ana başlığı 720 01 01, 730 01 01, 760 01 01 ve 770 01 01 hesap kodlarının hangi ay aralığı seçimiş ise o ay aralığındaki toplamlardan oluşuyor.

ReDim al(s2sonsat, 1)

For x = 4 To s2sonsat
For z = 1 To farkay + 1
If S2.Cells(x, 1) = "720 01 01" Or S2.Cells(x, 1) = "730 01 01" Or S2.Cells(x, 1) = "730 02 01" Then
al(x, 1) = al(x, 1) + S2.Cells(x, 3 + z + bastay).Value
s3.Cells(11, 30) = al(x, 1)
End If
Next z
Next x

kodu ile sadece 720 01 01 hesap kodunun o ay aralığındaki değerini getirebiliyorum. Acaba

If S2.Cells(x, 1) = "720 01 01" Or S2.Cells(x, 1) = "730 01 01" Or S2.Cells(x, 1) = "730 02 01" Then
mantıksal sınamasında 720 01 01 hesap kodunun değerlerini diziye atadıktan sonra 730 01 01 sınamasına geçince dizi değerini siliyor. 730 01 01 hesap kodunun değerini yazıyor. Bana gerekli olan bu iki hesap kodunun toplamını diziye atayabilmek.

Yardımcı olursanız sevinirim.

Teşekkürler.
 
Üst