makro nasıl hızlandırılır

Katılım
13 Ocak 2018
Mesajlar
31
Excel Vers. ve Dili
Excel Tüm versiyonlar
Merhaba,

kodlarım çok uzun ve sitede altın üyeliğim olmadığı için excell yükleyemiyorum 3 tane for döngüsünü kesinlikle kullanmam gerekiyor aşağıda örnek yaptım bir tane kodlarım iyi çalışıyordu ancak For AY = 0 To 11 döngüsünü ekleyince ortam bozuldu aşırı yavaş çalışmaya başladı hızlı çalışması için ne önerebilirsiniz.

For AY = 0 To 11
For TUR = 1 To 25
For HESAP = 0 To 14

'Matematiksel işlemler basit topla çıkar işlemleri

Next AY
Next TUR
Next HESAP
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Dosyanızı harici paylaşım sitelerinden (dosya.co, dosya.tc gibi) birine yükleyebilirsiniz.
 
Katılım
13 Ocak 2018
Mesajlar
31
Excel Vers. ve Dili
Excel Tüm versiyonlar
For W = 0 To 11
For HESAP_TEKRAR = 0 To 15
'---SGK MATRAHI--- (S2)
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
A = (SGT / 30) * Range("B" & ((W * 49) + 6)).Value
If S14 < A Then
B = S14
Else
B = A
End If
B = B + Range("E" & ((W * 49) + 10)).Value + Range("E" & ((W * 49) + 11)).Value '---SGK devir matrahı
If A > B Then
S2 = B
Else
S2 = A
End If
If S2 < 0 Then
S2 = 0
Else
S2 = S2
End If
If Range("B" & ((W * 49) + 8)).Value = "YK" Then
S2 = 0
Else
S2 = S2
End If
Else
S2 = 0
End If
S2 = WorksheetFunction.Round(S2, 2)
'---KÜMÜLE SGK MATRAHI--- (S3)
S3 = S2
S3 = WorksheetFunction.Round(S3, 2)
'---SGK İŞÇİ--- (S4)
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
If Range("B" & ((W * 49) + 7)).Value = "EMEKLİ" Then
S4 = S2 * SGKA
Else
S4 = S2 * SGKB
End If
Else
S4 = 0
End If
S4 = WorksheetFunction.Round(S4, 2)
'---SGK İŞÇİ İŞSİZLİK--- (S5)
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
If Range("B" & ((W * 49) + 7)).Value = "EMEKLİ" Then
S5 = 0
Else
S5 = S2 * SGKC
End If
Else
S5 = 0
End If
S5 = WorksheetFunction.Round(S5, 2)
'---GELİR VERGİSİ MATRAHI--- (S6)
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
If Range("D" & ((W * 49) + 15)).Value = 0 Then
D = 0
Else
D = (S14) - (S4 + S5)
End If
If Range("B" & ((W * 49) + 8)).Value = "MAVİ YAKA" Then
E = (Range("E" & ((W * 49) + 7)).Value * 0.025)
Else
E = 0
End If
If Range("D" & ((W * 49) + 15)).Value = 0 Then
S6 = D - E
Else
S6 = D - E
End If
Else
S6 = 0
End If
S6 = WorksheetFunction.Round(S6, 2)
'---KÜMÜLATİF GELİR VERGİSİ MATRAHI--- (S7)
S7 = S6 + Range("E" & ((W * 49) + 9)).Value
S7 = WorksheetFunction.Round(S7, 2)
'---GELİR VERGİSİ ASIL--- (S8)
If Range("D" & ((W * 49) + 15)).Value = 0 Then
ASIL_GV1 = 0
ElseIf S7 <= GVD_UST15 Then
ASIL_GV1 = S7 * GVD_YUZDE15
ElseIf S7 <= GVD_UST20 Then
ASIL_GV1 = (GVD_KALAN20 + ((S7 - GVD_UST15)) * GVD_YUZDE20)
ElseIf S7 <= GVD_UST27 Then
ASIL_GV1 = (GVD_KALAN27 + ((S7 - GVD_UST20)) * GVD_YUZDE27)
ElseIf S7 <= GVD_UST35 Then
ASIL_GV1 = (GVD_KALAN35 + ((S7 - GVD_UST27)) * GVD_YUZDE35)
ElseIf S7 <= GVD_UST40 Then
ASIL_GV1 = (GVD_KALAN40 + ((S7 - GVD_UST35)) * GVD_YUZDE40)
Else
ASIL_GV1 = 0
End If
If Range("D" & ((W * 49) + 15)).Value = 0 Then
ASIL_GV2 = 0
ElseIf Range("E" & ((W * 49) + 9)).Value <= GVD_UST15 Then
ASIL_GV2 = Range("E" & ((W * 49) + 9)).Value * GVD_YUZDE15
ElseIf Range("E" & ((W * 49) + 9)).Value <= GVD_UST20 Then
ASIL_GV2 = GVD_KALAN20 + (Range("E" & ((W * 49) + 9)).Value - GVD_UST15) * GVD_YUZDE20
ElseIf Range("E" & ((W * 49) + 9)).Value <= GVD_UST27 Then
ASIL_GV2 = GVD_KALAN27 + (Range("E" & ((W * 49) + 9)).Value - GVD_UST20) * GVD_YUZDE27
ElseIf Range("E" & ((W * 49) + 9)).Value <= GVD_UST35 Then
ASIL_GV2 = GVD_KALAN35 + (Range("E" & ((W * 49) + 9)).Value - GVD_UST27) * GVD_YUZDE35
ElseIf Range("E" & ((W * 49) + 9)).Value <= GVD_UST40 Then
ASIL_GV2 = GVD_KALAN40 + (Range("E" & ((W * 49) + 9)).Value - GVD_UST35) * GVD_YUZDE40
Else
ASIL_GV2 = 0
End If
S8 = ASIL_GV1 - ASIL_GV2
S8 = WorksheetFunction.Round(S8, 2)
'---GELİR VERGİSİ İSTİSNA--- (S9)
If Range("B" & ((W * 49) + 8)).Value = "YK" Then
S9 = 0
Else
F = GV_IST
If S8 < F Then
G = S8
Else
G = F
End If
If S8 = 0 Then
S9 = 0
ElseIf G < 0 Then
S9 = 0
Else
S9 = G
End If
End If
'---GELİR VERGİSİ İSTİSNA KALAN--- (S10)
S10 = S8 - S9
'---DV ASIL--- (S11)
S11 = S14 * DV
S11 = WorksheetFunction.Round(S11, 2)
'---DV ASIL İSTİSNA--- (S12)
If Range("B" & ((W * 49) + 8)).Value = "YK" Then
S12 = 0
Else
J = DV_IST
If S11 < J Then
K = S11
Else
K = J
End If
If S11 = 0 Then
S12 = 0
ElseIf K < 0 Then
S12 = 0
Else
S12 = K
End If
End If
'---DV İSTİSNA KALAN--- (S13)
S13 = S11 - S12
'---BRÜT MAAŞ--- (S14)
S14 = (Range("D" & ((W * 49) + 15)).Value + S4 + S5 + S10 + S13)
S14 = WorksheetFunction.Round(S14, 2)
'---SGK ISVEREN PAYI--- (S15)
If Range("B" & ((W * 49) + 8)).Value = "YK" Then
S15 = 0
Else
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
If Range("B" & ((W * 49) + 7)).Value = "EMEKLİ" Then
S15 = S2 * SGK_ISVE
Else
S15 = S2 * SGK_ISVN
End If
End If
S15 = WorksheetFunction.Round(S15, 2)
End If
'---SGK_ISVEREN_ISSIZLIK_PAYI--- (S16)
If Range("B" & ((W * 49) + 8)).Value = "YK" Then
S16 = 0
Else
If Range("B" & ((W * 49) + 15)).Value = "AA" Then
If Range("B" & ((W * 49) + 7)).Value = "EMEKLİ" Then
S16 = S2 * SGK_ISV_ISSIZLIKE
Else
S16 = S2 * SGK_ISV_ISSIZLIKN
End If
End If
S16 = WorksheetFunction.Round(S16, 2)
End If
'---ISVEREN_MALIYET--- (S17)
S17 = (S14 + S15 + S16)
S17 = WorksheetFunction.Round(S17, 2)
Next HESAP_TEKRAR
Range("E" & ((W * 49) + 15)).Value = S2
Range("F" & ((W * 49) + 15)).Value = S3
Range("G" & ((W * 49) + 15)).Value = S4
Range("H" & ((W * 49) + 15)).Value = S5
Range("I" & ((W * 49) + 15)).Value = S6
Range("J" & ((W * 49) + 15)).Value = S7
Range("K" & ((W * 49) + 15)).Value = S8
Range("L" & ((W * 49) + 15)).Value = S9
Range("M" & ((W * 49) + 15)).Value = S10
Range("N" & ((W * 49) + 15)).Value = S11
Range("O" & ((W * 49) + 15)).Value = S12
Range("P" & ((W * 49) + 15)).Value = S13
Range("Q" & ((W * 49) + 15)).Value = S14
Range("R" & ((W * 49) + 15)).Value = S15
Range("S" & ((W * 49) + 15)).Value = S16
Range("T" & ((W * 49) + 15)).Value = S17
Next W
'--------------YAN ÖDEMELER---------------------------------------
If Range("L" & ((W * 49) + 8)).Value = "EVET" Then
Range("Q" & ((W * 49) + 16)).Value = Range("L" & ((W * 49) + 2)).Value
Else
Range("Q" & ((W * 49) + 16)).Value = 0
End If
If Range("L" & ((W * 49) + 9)).Value = "EVET" Then
Range("Q" & ((W * 49) + 17)).Value = Range("L" & ((W * 49) + 3)).Value
Else
Range("Q" & ((W * 49) + 17)).Value = 0
End If
For W = 0 To 11
For x = 1 To 25
For HESAP_TEKRAR = 0 To 14
Range("S1").Value = (W / 11)
'---SGK MATRAHI--- (S2)
If x = 1 Or x = 2 Then
S2 = 0
Else
If Cells((W * 49) + x + 15, 2).Value = "AA" Then
A = (SGT / 30) * Cells((W * 49) + 6, 2).Value
If S14 < A Then
B = S14
Else
B = A
End If
If A - Range("F" & (x + 14) + (W * 49)).Value > B Then
S2 = B
Else
S2 = A - Range("F" & (x + 14) + (W * 49)).Value
End If
If S2 < 0 Then
S2 = 0
Else
S2 = S2
End If
If Cells((W * 49) + 8, 2).Value = "YK" Then
S2 = 0
Else
S2 = S2
End If
Else
S2 = 0
End If
End If
S2 = WorksheetFunction.Round(S2, 2)
'---KÜMÜLE SGK MATRAHI--- (S3)
S3 = S2 + Range("F" & (x + 14) + (W * 49)).Value
S3 = WorksheetFunction.Round(S3, 2)
'---SGK İŞÇİ--- (S4)
If x = 1 Or x = 2 Then
S4 = 0
Else
If Cells((W * 49) + x + 15, 2).Value = "AA" Then
If Cells((W * 49) + 7, 2).Value = "EMEKLİ" Then
S4 = S2 * SGKA
Else
S4 = S2 * SGKB
End If
Else
S4 = 0
End If
End If
S4 = WorksheetFunction.Round(S4, 2)
'---SGK İŞÇİ İŞSİZLİK--- (S5)
If x = 1 Or x = 2 Then
S5 = 0
Else
If Cells((W * 49) + x + 15, 2).Value = "AA" Then
If Cells((W * 49) + 7, 2).Value = "EMEKLİ" Then
S5 = 0
Else
S5 = S2 * SGKC
End If
Else
S5 = 0
End If
End If
S5 = WorksheetFunction.Round(S5, 2)
'---GELİR VERGİSİ MATRAHI--- (S6)
If x = 2 Then

S6 = 0
Else
If x = 1 Then
If Range("Q" & 16 + (W * 49)).Value = 0 Then
D = 0
Else
D = Range("Q" & 16 + (W * 49)).Value
End If
S6 = D
Else
If Cells((W * 49) + x + 15, 2).Value = "AA" Or Cells((W * 49) + x + 15, 2).Value = "BB" Then
If Cells((W * 49) + x + 15, 4).Value = 0 Then
D = 0
Else
D = (S14) - (S4 + S5)
End If
S6 = D
Else
S6 = 0
End If
End If
End If
S6 = WorksheetFunction.Round(S6, 2)
'---KÜMÜLATİF GELİR VERGİSİ MATRAHI--- (S7)
S7 = S6 + Range("J" & (x + 14) + (W * 49)).Value
S7 = WorksheetFunction.Round(S7, 2)
'---GELİR VERGİSİ ASIL--- (S8)
If x = 2 Then
S8 = 0
Else
If x = 1 Then
If Range("Q" & 16 + (W * 49)).Value = 0 Then
ASIL_GV1 = 0
ElseIf S7 <= GVD_UST15 Then
ASIL_GV1 = S7 * GVD_YUZDE15
ElseIf S7 <= GVD_UST20 Then
ASIL_GV1 = (GVD_KALAN20 + ((S7 - GVD_UST15)) * GVD_YUZDE20)
ElseIf S7 <= GVD_UST27 Then
ASIL_GV1 = (GVD_KALAN27 + ((S7 - GVD_UST20)) * GVD_YUZDE27)
ElseIf S7 <= GVD_UST35 Then
ASIL_GV1 = (GVD_KALAN35 + ((S7 - GVD_UST27)) * GVD_YUZDE35)
ElseIf S7 <= GVD_UST40 Then
ASIL_GV1 = (GVD_KALAN40 + ((S7 - GVD_UST35)) * GVD_YUZDE40)
Else
ASIL_GV1 = 0
End If
If Range("Q" & 16 + (W * 49)).Value = 0 Then
ASIL_GV2 = 0
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST15 Then
ASIL_GV2 = Range("J" & (x + 14) + (W * 49)).Value * GVD_YUZDE15
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST20 Then
ASIL_GV2 = GVD_KALAN20 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST15) * GVD_YUZDE20
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST27 Then
ASIL_GV2 = GVD_KALAN27 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST20) * GVD_YUZDE27
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST35 Then
ASIL_GV2 = GVD_KALAN35 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST27) * GVD_YUZDE35
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST40 Then
ASIL_GV2 = GVD_KALAN40 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST35) * GVD_YUZDE40
Else
ASIL_GV2 = 0
End If
S8 = ASIL_GV1 - ASIL_GV2
S8 = WorksheetFunction.Round(S8, 2)
Else
If Cells((W * 49) + x + 15, 4).Value = 0 Then
ASIL_GV1 = 0
ElseIf S7 <= GVD_UST15 Then
ASIL_GV1 = S7 * GVD_YUZDE15
ElseIf S7 <= GVD_UST20 Then
ASIL_GV1 = (GVD_KALAN20 + ((S7 - GVD_UST15)) * GVD_YUZDE20)
ElseIf S7 <= GVD_UST27 Then
ASIL_GV1 = (GVD_KALAN27 + ((S7 - GVD_UST20)) * GVD_YUZDE27)
ElseIf S7 <= GVD_UST35 Then
ASIL_GV1 = (GVD_KALAN35 + ((S7 - GVD_UST27)) * GVD_YUZDE35)
ElseIf S7 <= GVD_UST40 Then
ASIL_GV1 = (GVD_KALAN40 + ((S7 - GVD_UST35)) * GVD_YUZDE40)
Else
ASIL_GV1 = 0
End If
If Cells((W * 49) + x + 15, 4).Value = 0 Then
ASIL_GV2 = 0
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST15 Then
ASIL_GV2 = Range("J" & (x + 14) + (W * 49)).Value * GVD_YUZDE15
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST20 Then
ASIL_GV2 = GVD_KALAN20 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST15) * GVD_YUZDE20
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST27 Then
ASIL_GV2 = GVD_KALAN27 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST20) * GVD_YUZDE27
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST35 Then
ASIL_GV2 = GVD_KALAN35 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST27) * GVD_YUZDE35
ElseIf Range("J" & (x + 14) + (W * 49)).Value <= GVD_UST40 Then
ASIL_GV2 = GVD_KALAN40 + (Range("J" & (x + 14) + (W * 49)).Value - GVD_UST35) * GVD_YUZDE40
Else
ASIL_GV2 = 0
End If
S8 = ASIL_GV1 - ASIL_GV2
S8 = WorksheetFunction.Round(S8, 2)
End If
End If
'---GELİR VERGİSİ İSTİSNA--- (S9)
If Cells((W * 49) + 8, 2).Value = "YK" Or x = 2 Then
S9 = 0
Else
If W = 0 Then
F = GV_IST - WorksheetFunction.Sum(Range("L15:L" & (14 + x)).Value)

Else
End If
If S8 < F Then
G = S8
Else
G = F
End If
If S8 = 0 Then
S9 = 0
ElseIf G < 0 Then
S9 = 0
Else
S9 = G
End If
End If
'---GELİR VERGİSİ İSTİSNA KALAN--- (S10)
If x = 2 Then
S10 = 0
Else
S10 = S8 - S9
End If
'---DV ASIL--- (S11)
If Cells((W * 49) + x + 15, 2).Value = "DD" Then
S11 = 0
Else
S11 = S14 * DV
End If
S11 = WorksheetFunction.Round(S11, 2)
'---DV ASIL İSTİSNA--- (S12)
If Cells((W * 49) + 8, 2).Value = "YK" Then
S12 = 0
Else
If W = 0 Then
J = DV_IST - WorksheetFunction.Sum(Range("O15:O" & (14 + x)).Value)
Else
End If
If S11 < J Then
K = S11
Else
K = J
End If
If S11 = 0 Then
S12 = 0
ElseIf K < 0 Then
S12 = 0
Else
S12 = K
End If
End If
'---DV İSTİSNA KALAN--- (S13)
S13 = S11 - S12
'---BRÜT MAAŞ--- (S14)
If x = 1 Then
S14 = Range("Q" & 16 + (W * 49)).Value
ElseIf x = 2 Then
S14 = Range("Q" & 17 + (W * 49)).Value
Else
S14 = (Cells((W * 49) + x + 15, 4).Value + S4 + S5 + S10 + S13)
End If
S14 = WorksheetFunction.Round(S14, 2)
Next HESAP_TEKRAR
If x = 1 Or x = 2 Then
Cells((W * 49) + x + 15, 5).Value = S2
Cells((W * 49) + x + 15, 6).Value = S3
Cells((W * 49) + x + 15, 7).Value = S4
Cells((W * 49) + x + 15, 8).Value = S5
Cells((W * 49) + x + 15, 9).Value = S6
Cells((W * 49) + x + 15, 10).Value = S7
Cells((W * 49) + x + 15, 11).Value = S8
Cells((W * 49) + x + 15, 12).Value = S9
Cells((W * 49) + x + 15, 13).Value = S10
Cells((W * 49) + x + 15, 14).Value = S11
Cells((W * 49) + x + 15, 15).Value = S12
Cells((W * 49) + x + 15, 16).Value = S13
Cells((W * 49) + x + 15, 18).Value = S15
Cells((W * 49) + x + 15, 19).Value = S16
Cells((W * 49) + x + 15, 20).Value = S17
Else
Cells((W * 49) + x + 15, 5).Value = S2
Cells((W * 49) + x + 15, 6).Value = S3
Cells((W * 49) + x + 15, 7).Value = S4
Cells((W * 49) + x + 15, 8).Value = S5
Cells((W * 49) + x + 15, 9).Value = S6
Cells((W * 49) + x + 15, 10).Value = S7
Cells((W * 49) + x + 15, 11).Value = S8
Cells((W * 49) + x + 15, 12).Value = S9
Cells((W * 49) + x + 15, 13).Value = S10
Cells((W * 49) + x + 15, 14).Value = S11
Cells((W * 49) + x + 15, 15).Value = S12
Cells((W * 49) + x + 15, 16).Value = S13
Cells((W * 49) + x + 15, 17).Value = S14
Cells((W * 49) + x + 15, 18).Value = S15
Cells((W * 49) + x + 15, 19).Value = S16
Cells((W * 49) + x + 15, 20).Value = S17
End If
Next x
Next W
End If
End Sub
 
Katılım
13 Ocak 2018
Mesajlar
31
Excel Vers. ve Dili
Excel Tüm versiyonlar
bu mesajın bir anlamı yok mu?
tabi var hocam yanlış anlaşılmasın saygısızlık etmek istemem ancak şirkete ait bir excel ve satın alınmış bir excel ben kendimce modifiye edip ekleme çıkarma yapıyorum bu nedenle yavaşlamalarda olabiliyor Excel temelde diğer sayfalardaki parametleride kullandığı için excelin tümünü yüklemem gerekiyor yani sözü uzatmadan exceli paylaşma ihtimalim yok ancak temeldeki sorun aşağıdaki örnekte vermiş olduğum iç içe for döngülerinde satırlardaki kodlar 3850 kez tekrar etmektedir. Bu iç içe for döngüsünü hızlandırmanın bir yolunu aramaktayım

Burdaki işlemi şöyle açıklayayım hesap isimli döngü kesinlikle olması gerekiyor bu işlemden sonraki TUR isimli döngü 25 satır olarak kullanılmaktadır. AY ile bildiğimiz 12 aylık olarak 1 yılı temsil etmektedir.

Bu excel bir Bordro hesaplama excelidir.

For AY = 0 To 11
For TUR = 1 To 25
For HESAP = 0 To 14

'Matematiksel işlemler basit topla çıkar işlemleri

Next AY
Next TUR
Next HESAP
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Döngüleri hızlandırmak için iki alternatif önerebilirim.

1- Aşağıdaki yapıyı kodlarınıza entegre edebilirsiniz. Bir nebze avantaj sağlayabilir.. İşlem süresini görebilmeniz için zaman sayacı da ekledim.

C++:
Option Explicit

Sub Test()
    Dim Old_Calculation_Mode As Integer, Process_Time As Double
    
    Process_Time = Timer

    With Application
        .ScreenUpdating = False
         Old_Calculation_Mode = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
    End With
    
    Rem Kodlarınız...
    Rem Kodlarınız...
    Rem Kodlarınız...
    Rem Kodlarınız...
    Rem Kodlarınız...
    
    With Application
        .ScreenUpdating = True
        .Calculation = Old_Calculation_Mode
        .EnableEvents = True
    End With
    
    MsgBox "İşleminiz tamamlanmıştır." & vbCrLf & vbCrLf & _
           "İşlem süresi ; " & Format(Timer - Process_Time, "0.00") & " Saniye", vbInformation
End Sub
2- Döngülerinizde hücreler kullanıyorsunuz. Bunları Array (Dizi) şeklinde kullanabilirseniz çok hızlı sonuçlar elde edebilirsiniz. Forumda bununla ilgili bolca örnek var. Arama yaparsanız ulaşabilirsiniz.
 
Katılım
13 Ocak 2018
Mesajlar
31
Excel Vers. ve Dili
Excel Tüm versiyonlar
Hocam arraylar işimi çözdü çok teşekkür ederim fikir verdiğiniz için asıl yavaşlık hücrelere dokununca başlıyormuş
 
Üst