ismailozkan4224
Altın Üye
- Katılım
- 22 Kasım 2011
- Mesajlar
- 175
- Excel Vers. ve Dili
- 2007 türkçe
selamün aleyküm. Değerli arkadaşlar bu kod ile verileri alabiliyorum. ancak sıkıntı alan kısmı boş ise hata veriyor. yani sıralama yapacağı rakamı bulamayınca hata veriyor. aşağıdaki koda nasıl bir ilave sorun çözülebilir.
Lst(a2) = Wf.Large(alan, 1) ' bu kısım hata veriyor
**iki tane ayrı sınıftan ayrı ayrı öğrenciler aynı puanı almışsa BİRİNCİSİNİ mükerrer gösteriyor. Diğerini göstermiyor.
dosya ektedir...
şimdiden teşekkür ederim.
Private Sub ComboBox1_Change()
Dim f As Integer, v As Integer, v2 As Integer, a As Integer, a2 As Integer
Dim sut As Long
Dim Wf As WorksheetFunction, alan As Range
Set Wf = WorksheetFunction
sut = ComboBox1.ListIndex + 7
For i = 1 To 60
Controls("TextBox" & i) = ""
Next i
If ComboBox1.Value = "" Then Exit Sub
f = 0: v = 2: v2 = 51
For a = 1 To 2
Dim Lst(4)
Dim Lst2(4)
For a2 = 0 To 4
Set alan = Range(Cells(v, sut), Cells(v2, sut))
Lst(a2) = Wf.Large(alan, 1) ' bu kısım hata veriyor
Lst2(a2) = Wf.Match(Wf.Large(alan, 1), alan, 0) + v - 1
v = v + 50: v2 = v2 + 50
Next
For a2 = 0 To 4
x = Wf.Match(Wf.Large(Lst, a2 + 1), Lst, 0) - 1
Controls("TextBox" & a2 + 1 + f) = Cells(Lst2(x), sut)
Controls("TextBox" & 10 + a2 + 1 + f) = Cells(Lst2(x), "B")
Controls("TextBox" & 20 + a2 + 1 + f) = Cells(Lst2(x), "C")
Controls("TextBox" & 30 + a2 + 1 + f) = Cells(Lst2(x), "E")
Controls("TextBox" & 40 + a2 + 1 + f) = Cells(Lst2(x), "CG") '"D"
Controls("TextBox" & 50 + a2 + 1 + f) = Cells(Lst2(x), "CF")
Next
Erase Lst: Erase Lst2
f = 5
v = 252: v2 = 301
Next
End Sub
Lst(a2) = Wf.Large(alan, 1) ' bu kısım hata veriyor
**iki tane ayrı sınıftan ayrı ayrı öğrenciler aynı puanı almışsa BİRİNCİSİNİ mükerrer gösteriyor. Diğerini göstermiyor.
dosya ektedir...
şimdiden teşekkür ederim.
Private Sub ComboBox1_Change()
Dim f As Integer, v As Integer, v2 As Integer, a As Integer, a2 As Integer
Dim sut As Long
Dim Wf As WorksheetFunction, alan As Range
Set Wf = WorksheetFunction
sut = ComboBox1.ListIndex + 7
For i = 1 To 60
Controls("TextBox" & i) = ""
Next i
If ComboBox1.Value = "" Then Exit Sub
f = 0: v = 2: v2 = 51
For a = 1 To 2
Dim Lst(4)
Dim Lst2(4)
For a2 = 0 To 4
Set alan = Range(Cells(v, sut), Cells(v2, sut))
Lst(a2) = Wf.Large(alan, 1) ' bu kısım hata veriyor
Lst2(a2) = Wf.Match(Wf.Large(alan, 1), alan, 0) + v - 1
v = v + 50: v2 = v2 + 50
Next
For a2 = 0 To 4
x = Wf.Match(Wf.Large(Lst, a2 + 1), Lst, 0) - 1
Controls("TextBox" & a2 + 1 + f) = Cells(Lst2(x), sut)
Controls("TextBox" & 10 + a2 + 1 + f) = Cells(Lst2(x), "B")
Controls("TextBox" & 20 + a2 + 1 + f) = Cells(Lst2(x), "C")
Controls("TextBox" & 30 + a2 + 1 + f) = Cells(Lst2(x), "E")
Controls("TextBox" & 40 + a2 + 1 + f) = Cells(Lst2(x), "CG") '"D"
Controls("TextBox" & 50 + a2 + 1 + f) = Cells(Lst2(x), "CF")
Next
Erase Lst: Erase Lst2
f = 5
v = 252: v2 = 301
Next
End Sub
