DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Hocam,Merhaba,
1 ile 999999 aralığında rastgele sayı üreten kodlarınız aşağıdadır.
Kod:Sub rastgele_sayi_uret() sayi = Int(999999 * Rnd + 1) MsgBox sayi End Sub
Çekiliş torbasının içinde 1 den 999999 sayısına kadar numaralandırılmış top bulunduğunu farz edin. Torbadan rastgele her seferinde bir top çektiğinizde çıkan sayının ne olabileceği ihtimali neyse, buda öyledir. Çektiğiniz topu tekrar torbaya bıraktığınızı da düşünürsek, zayıf bir ihtimal bile olsa aynı sayı çıkma ihtimali vardır. Başka bir senaryo kurguluyorsanız, ona uygun da kod yazılabilir. Siz tam olarak ne istediğinizi belirtin.
İlginiz için teşekkür ederim.Atılmaksızın yapmak için çıkan sayıları bir yere kaydetmenız gerek. Ya da bir diziye. Çıkan sayı dizide varsa başa dön gibi bir şart koyabilirsiniz.
Sözünü ettiğiniz döngü (çıkan bir sayı daha önce çıkmışsa tekrar çıkmasın olayı), size tavsiye ettiğim konu linkinde mevcuttur. O konuda şöyle bir olay vardır:İlginiz için teşekkür ederim.
ID olarak kullanılırsa zaten bir yere kaydoluyor.
O zaman yeni kayda ID vermeden önce üretilen sayının ID sütununda olup olmadığını sorgulatmak, varsa döngüyü başa almak, yoksa döngüyü sonlandırmakla olur yani.
Doğru mu anladım?
Sözünü ettiğiniz döngü (çıkan bir sayı daha önce çıkmışsa tekrar çıkmasın olayı), size tavsiye ettiğim konu linkinde mevcuttur. O konuda şöyle bir olay vardır:
Bir personel listesi içinden nöbetçiler seçilecektir. Rastgele kodu ile personelin bulunduğu satır için çekiliş yapılıyor. O satır daha önce çıkmışsa, "Go To yeniden" yani yeniden çekilişi tekrarla, ta ki o numara dışında numara çıkana kadar. Böylece çıkan numara torbaya atılmamış oluyor.