AccessTr.neT
Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek (/konu-veritabanindan-kelime-karsiliklarindan-1-dogru-3-yanlis-cevabi-rasgele-secmek.html)

Sayfalar: 1 2 3


RE: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - berduş - 22/05/2021

aşağıdaki kodları modüle ekler misiniz?
dikdörtgenin kodu
Sub DikdörtgenKöşeleriYuvarlatılmış1_Tıkla()
rastgeleTestCol
End Sub
ana fonksiyon kodu
Sub rastgeleTestCol()
't1 = Now
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
HdfSyf = IIf(Sayfa4.OptionButton1 = True, Sayfa4.OptionButton1.Caption, Sayfa4.OptionButton2.Caption)
Hdf = IIf(Sayfa4.OptionButton1 = True, True, False)
Set HdfSht = ThisWorkbook.Sheets(HdfSyf)
HdfSht.Cells.Clear
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
For Soru = 1 To SoruSay '
UstSnr = SozlukColl.Count
SonStr = HdfSht.Cells(HdfSht.Rows.Count, "A").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
HdfSht.Cells(SonStr, 1) = Soru
For x = 0 To 3
HdfSht.Cells(SonStr, x + 3) = Sht.Cells(SozlukColl(Secim(x)), -1 - Hdf + 2) 'Şıklar
Next x
HdfSht.Cells(SonStr, 2) = Sht.Cells(SozlukColl(Secim(Dogru)), Hdf + 2) 'Esas kelime
Next Soru
'Debug.Print Sht.Name, HdfSht.Name, SoruSay
't2 = Now
'Debug.Print t1, t2, DateDiff("s", t1, t2)
End Sub

hata kontrolleri eklenmedi mesela olmayan sayfayı seçerseniz hata verir yada combolar boş ise...


RE: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - berduş - 22/05/2021

bu kadar sayfaya gerek var mı? daha kafamda tam oturtamadım ama 2 sayfa yetmez mi?
1 tane kelime sayfası bir tane de test sayfası olsa verileri filtreleyerek alsak olmaz mı?


RE: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - Oğuz Türkyılmaz - 22/05/2021

(22/05/2021, 15:29)berduş yazdı: bu kadar sayfaya gerek var mı? daha kafamda tam oturtamadım ama 2 sayfa yetmez mi?
1 tane kelime sayfası bir tane de test sayfası olsa verileri filtreleyerek alsak olmaz mı?

@berduş hocam database sayfasında 60.000 satırlık sözlükteki her kelimenin hangi kritere uyduğunu belirlemek gerekiyor. Ayrı ayrı sayfalarda yaptım çünkü deyimler, fiiller günlük yaşamdan cümle örnekleri bunlar farklı bunları ben tek tek ilgili sayfaya gireceğim. Bu şekilde daha kolay olur database sayfası zaten 60000 satır daha da şişirmeyelim diye düşündüm. ( Sayfalardan birine eklenecek bir kelime eğer DATABASE sayfasında da varsa o kelimeyi DATABASE sayfasından ayrıca sileceğim.)


Re: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - Oğuz Türkyılmaz - 22/05/2021

@berduş hocam makroyu modülden çalıştırdığımda rastgeleTestCol bulunamadı hatası aldım. Anlam veremedim ama bende bu bölümü iptal edip direk resimdeki gibi çalıştırdım. KOD gayet hızlı 100 soruyu hazırladı.

Kod:
'Sub DikdörtgenKöşeleriYuvarlatılmış1_Tıkla()
'rastgeleTestCol
'End Sub

[Resim: do.php?img=11057]


RE: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - berduş - 22/05/2021

kodu modüle ekleyip butona yeniden makroyu atar mısınız?


RE: Veritabanından Kelime Karşılıklarından 1 Doğru 3 Yanlış Cevabı Rasgele Seçmek - Oğuz Türkyılmaz - 22/05/2021

(22/05/2021, 21:09)berduş yazdı: kodu modüle ekleyip butona yeniden makroyu atar mısınız?

Hata veriyor neyi yanlış yapıyorum anlamadım.

[Resim: do.php?img=11058]