• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Havuzdan Rasgele Sayı Seçmek

  • Konbuyu başlatan Konbuyu başlatan mlakdag
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Ağustos 2004
Mesajlar
99
Sayın Forum Üyeleri,


Sorum kısaca şöyle; 1'den 5'e kadar sayıların olduğu bir havuzdan 5 kere tesadüfi sayıyı nasıl alabiliriz ? Yani her çektiğimiz sayı havuzdan çıkacak, dolayısıyla her sayıyı bir kere kullanmış olacağız ama sırası tesadüfi olacak.

Aslında kolay gibi ama aklıma bir yöntem gelmedi, sizlere de danışmak istedim.

Yardımlarınız için şimdiden teşekkürlerimi sunuyorum.

Saygılarımla.
 
Belki Size Yol Göstere bilir

Sub sayicek()
sonsayı = InputBox("En Büyük Sayı")
For x = 1 To 1
Cells(x, 2).Value = Int(Rnd * sonsayı)
Next
End Sub

Umarım İşinizi Görmede Yardımcı olur.
 
=randbetween(1,5)
F9'a basın

(#NAME? hatasi vermesi durumunda:
Tools menu, click Add-Ins, select the Analysis ToolPak box, and then click OK.)
 
Sayın Rakkas,

Öncelikle ayırdığınız zaman ve harcadağınız emek için çok teşekkür ederim.

Kodunuzu doğru mu yorumluyorum bilemiyorum ama anladığın kadarıyla; sıfır ile sonsayı arasında bir sayı değeri üretilecek ve bu durum x değeri kadar tekrarlanacak. Ancak, burada aynı değerin birden fazla üretilmesini engelleyen bir durum yok gibi geldi bana. Ancak, bir bakışı getirmesi hasebiyle tekrar teşekkürlerimi sunuyorum.
 
asagidaki kodu code module ekleyin
ustte solda general sagda randlotto secili olsun..

sonra =RandLotto(1;5;5) yazin..


Function RandLotto(Bottom As Integer, Top As Integer, _
Amount As Integer) As String
Dim iArr As Variant
Dim i As Integer
Dim r As Integer
Dim temp As Integer

Application.Volatile

ReDim iArr(Bottom To Top)
For i = Bottom To Top
iArr(i) = i
Next i

For i = Top To Bottom + 1 Step -1
r = Int(Rnd() * (i - Bottom + 1)) + Bottom
temp = iArr(r)
iArr(r) = iArr(i)
iArr(i) = temp
Next i

For i = Bottom To Bottom + Amount - 1
RandLotto = RandLotto & " " & iArr(i)
Next i

RandLotto = Trim(RandLotto)

End Function
 
Sayın merken,

Size de yardım ve kodunuz için çok teşekkür ediyorum.

Kendi çözümümü şu şekilde gerçekleştirmeye çalıştım; 2. Worksheet'in A1-A5 hücrelerine sırayla 1,2,3,4,5 sayılarını yazdım ve rasgele bir tanesini seçip, seçtiğimi sildim, geriye kalanlardan tekrar seçtirdim. Belki biraz uzun oldu ama şimdilik işimi görüyor.
 
5 sayi icin olabilir ama daha fazlasi icin isiniz zor gorunuyor
kolay gelsin..
 
Sayın merken,

Ben de Array kullanılabileceğini düşünmüş ama becerememiştim bu açıdan tekrar teşekkür etmek ve kodunuz içindeki "Application.Volatile" ifadesinin nasıl bir görev ifa ettiğini sormak istedim.

Saygılarımla.
 
mlakdag' Alıntı:
kodunuz içindeki "Application.Volatile" ifadesinin nasıl bir görev ifa ettiğini sormak istedim..

biraz ingilizce olacak ama:

The first line of code specifies Application.Volatile which makes this a "volatile" function. Each time the worksheet calculates the random numbers you have created will recalculate themselves so you'll get a different set. You can "freeze" the numbers by performing a Copy and Paste Special > Values on the range. But if you don't want that, just omit the line.

detayli bilgi: http://www.dicks-blog.com/archives/2004/06/22/volatile-functions/
 
Sayın Merken ek bilgi için tekrar teşekkür ediyorum.

Saygılarımla.
 
Geri
Üst