- Katılım
- 28 Eylül 2007
- Mesajlar
- 4,042
- Excel Vers. ve Dili
- 2013 Türkçe
Arkadaşlar Excel ile çok uğraşmama rağmen şu dizileri bir türlü kavrayamadım. Bir tane kod yazdım (daha doğrusu alıntı yaptım) ama sonca ulaşıncaya kadar bir sürü hata verdi. Dizi olmadan makro ve yerleşik formül işbirliği ile 3,20 sn civarı işlem yaparken dizi ile bu süre 0,20 sn kadar inmekte. Kodda fazladan yazdığım yerler var mı?
Sub Oran_Dizi()
Set l = Sheets("Lig")
Set s = Sheets("Oran")
son = l.Cells(Rows.Count, "FB").End(3).Row
skorr = l.Range("FA5:FD" & son).Value
puann = l.Range("FG5:FV" & son).Value
tahminn = l.Range("HA5:IF" & son).Value
takım = s.Range("X4:X21").Value
s.Range("Z4:HH21") = ""
Dim tablo(18, 192)
Dim kazanır(18, 2)
Dim berabere(18, 2)
Dim kaybeder(18, 2)
For j = 1 To 18
kazanır(j, 0) = 0
kazanır(j, 1) = 0
berabere(j, 0) = 0
berabere(j, 1) = 0
kaybeder(j, 0) = 0
kaybeder(j, 1) = 0
tkm = takım(j, 1)
For i = 1 To son - 4
If tkm = skorr(i, 1) Then
For k = 1 To 16
If tablo(j, k * 12 - 11) = "" Then tablo(j, k * 12 - 11) = 0
If tablo(j, k * 12 - 7) = "" Then tablo(j, k * 12 - 7) = 0
If tablo(j, k * 12 - 3) = "" Then tablo(j, k * 12 - 3) = 0
If tablo(j, k * 12 - 9) = "" Then tablo(j, k * 12 - 9) = 0
If tablo(j, k * 12 - 5) = "" Then tablo(j, k * 12 - 5) = 0
If tablo(j, k * 12 - 1) = "" Then tablo(j, k * 12 - 1) = 0
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) Then tablo(j, k * 12 - 9) = tablo(j, k * 12 - 9) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) Then kazanır(j, 1) = kazanır(j, 1) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) Then tablo(j, k * 12 - 5) = tablo(j, k * 12 - 5) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) Then berabere(j, 1) = berabere(j, 1) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) Then tablo(j, k * 12 - 1) = tablo(j, k * 12 - 1) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) Then kaybeder(j, 1) = kaybeder(j, 1) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 11) = tablo(j, k * 12 - 11) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) And puann(i, k) > 0 Then kazanır(j, 0) = kazanır(j, 0) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 7) = tablo(j, k * 12 - 7) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) And puann(i, k) > 0 Then berabere(j, 0) = berabere(j, 0) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 3) = tablo(j, k * 12 - 3) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) And puann(i, k) > 0 Then kaybeder(j, 0) = kaybeder(j, 0) + 1
tablo(j, k * 12 - 10) = "/"
tablo(j, k * 12 - 6) = "/"
tablo(j, k * 12 - 2) = "/"
Next k
End If
If tkm = skorr(i, 4) Then
For k = 1 To 16
If tablo(j, k * 12 - 11) = "" Then tablo(j, k * 12 - 11) = 0
If tablo(j, k * 12 - 7) = "" Then tablo(j, k * 12 - 7) = 0
If tablo(j, k * 12 - 3) = "" Then tablo(j, k * 12 - 3) = 0
If tablo(j, k * 12 - 9) = "" Then tablo(j, k * 12 - 9) = 0
If tablo(j, k * 12 - 5) = "" Then tablo(j, k * 12 - 5) = 0
If tablo(j, k * 12 - 1) = "" Then tablo(j, k * 12 - 1) = 0
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) Then tablo(j, k * 12 - 9) = tablo(j, k * 12 - 9) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) Then kazanır(j, 1) = kazanır(j, 1) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) Then tablo(j, k * 12 - 5) = tablo(j, k * 12 - 5) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) Then berabere(j, 1) = berabere(j, 1) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) Then tablo(j, k * 12 - 1) = tablo(j, k * 12 - 1) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) Then kaybeder(j, 1) = kaybeder(j, 1) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 11) = tablo(j, k * 12 - 11) + 1
If tahminn(i, 2 * k - 1) < tahminn(i, 2 * k) And puann(i, k) > 0 Then kazanır(j, 0) = kazanır(j, 0) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 7) = tablo(j, k * 12 - 7) + 1
If tahminn(i, 2 * k - 1) = tahminn(i, 2 * k) And puann(i, k) > 0 Then berabere(j, 0) = berabere(j, 0) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) And puann(i, k) > 0 Then tablo(j, k * 12 - 3) = tablo(j, k * 12 - 3) + 1
If tahminn(i, 2 * k - 1) > tahminn(i, 2 * k) And puann(i, k) > 0 Then kaybeder(j, 0) = kaybeder(j, 0) + 1
tablo(j, k * 12 - 10) = "/"
tablo(j, k * 12 - 6) = "/"
tablo(j, k * 12 - 2) = "/"
Next k
End If
Next i
Next j
s.Range("Y3").Resize(19, 192) = tablo
s.Range("KD3").Resize(19, 2) = kazanır
s.Range("KH3").Resize(19, 2) = berabere
s.Range("KL3").Resize(19, 2) = kaybeder
s.Select
End Sub
