31/05/2021, 21:53
Merhaba
Uygulamada combobox ile soru tipi seçiminde database sayfasında kod çalışıyor ve rasgele sorular oluşturuluyor fakat yeni düzenlenen verbs sayfasını combobox'dan seçip bu sayfadaki A ve B sütunlarındaki bilgilerden rasgele sorular oluşturmaya çalıştığımda hata alıyorum. Yardımlarınız için teşekkür ederim.
Uygulamada combobox ile soru tipi seçiminde database sayfasında kod çalışıyor ve rasgele sorular oluşturuluyor fakat yeni düzenlenen verbs sayfasını combobox'dan seçip bu sayfadaki A ve B sütunlarındaki bilgilerden rasgele sorular oluşturmaya çalıştığımda hata alıyorum. Yardımlarınız için teşekkür ederim.
Kod:
Public TestDz() As Variant
Sub rastgeleTestCol()
Dim SonStr As Long
Dim Secim(0 To 3)
Set sht = ThisWorkbook.Sheets(Sayfa4.ComboBox1.Value)
SonStr = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
If SonStr < 2 Then Exit Sub
Hdf = IIf(Sayfa4.BtnEngTr = True, True, False)
Set HdfSht = ThisWorkbook.Sheets("RESULTS")
SoruSay = Int(Sayfa4.ComboBox2)
Set SozlukColl = New Collection
'hy____________________________Sözcükler için satır seçme
For x = 2 To SonStr
SozlukColl.Add x 'Collectiona değer atama
Next x
AltSnr = 1
ReDim TestDz(1 To SoruSay, 1 To 8)
For Soru = 1 To SoruSay '
UstSnr = SozlukColl.Count
SonStr = HdfSht.Cells(HdfSht.Rows.Count, "E").End(xlUp).Row + 1
For x = 0 To 3 'Rasgele 4 kelime için satır seçme
UstSnr = SozlukColl.Count
Randomize
KelimSira = Int((UstSnr - AltSnr + 1) * Rnd + AltSnr)
Secim(x) = KelimSira
SozlukColl.Remove (KelimSira) 'seçilen satırı silme
Next x
Randomize
Dogru = Int((3 - 0 + 1) * Rnd + 0) 'Esas kelimeyi seçme
TestDz(Soru, 1) = Soru 'Soru No
For x = 0 To 3
TestDz(Soru, x + 4) = sht.Cells(SozlukColl(Secim(x)), -1 - Hdf + 2)
HdfSht.Range("E" & SonStr).Formula = "=If(D" & SonStr & "="""",""Boş"",If(C" & SonStr & "=D" & SonStr & ",""Doğru"",""Yanlış""))"
Next x
TestDz(Soru, 2) = sht.Cells(SozlukColl(Secim(Dogru)), Hdf + 2)
TestDz(Soru, 3) = sht.Cells(SozlukColl(Secim(Dogru)), -1 - Hdf + 2)
Next Soru
ThisWorkbook.Sheets("Menu").Range("R8").Formula = "=" & SoruSay & "-R10"
End Sub