Koşullu olarak Rastgele sayı seçmek

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Aşağıdaki kodda;
2 ile 25 arasındaki sayıları rastgele seçmek istiyorum, yalnız burada seçilen bir sayı, bir sonraki seferde seçilmesin,
özetle her sayı bir defa seçilsin
seçilen sayıları sayfada bir sütuna yazdırarak orada kontrol ettirebiliriz, yalnız bunun işlem sürecini uzatacağını düşünüyorum
bunu kolay yoldan nasıl sağlayabiliriz? pratik bir yöntemi var mıdır?

teşekkürler, iyi çalışmalar.

Kod:
b=10
for i=2 to 25
a = WorksheetFunction.RandBetween(2, 25)

x=a*b
 
next i
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Merhaba

2 ile 25 arasındaki sayıları tekrarsız rastgele sıralayan ve msgbox olarak veren kod

Kod:
ReDim dizi(25, 2)

For i = 2 To 25

dizi(i, 1) = i
dizi(i, 2) = Rnd()

Next

For i = 2 To 25
For j = 2 To 25

If dizi(i, 2) > dizi(j, 2) Then


bos = dizi(i, 1)
dizi(i, 1) = dizi(j, 1)
dizi(j, 1) = bos

bos = dizi(i, 2)
dizi(i, 2) = dizi(j, 2)
dizi(j, 2) = bos

End If

Next
Next

For i = 2 To 25

MsgBox dizi(i, 1)

Next
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba

2 ile 25 arasındaki sayıları tekrarsız rastgele sıralayan ve msgbox olarak veren kod

Kod:
ReDim dizi(25, 2)

For i = 2 To 25

dizi(i, 1) = i
dizi(i, 2) = Rnd()

Next

For i = 2 To 25
For j = 2 To 25

If dizi(i, 2) > dizi(j, 2) Then


bos = dizi(i, 1)
dizi(i, 1) = dizi(j, 1)
dizi(j, 1) = bos

bos = dizi(i, 2)
dizi(i, 2) = dizi(j, 2)
dizi(j, 2) = bos

End If

Next
Next

For i = 2 To 25

MsgBox dizi(i, 1)

Next
teşekkürler Hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif...

C++:
Option Explicit
Dim Dizi As Object

Sub Rastgele()
    Dim X As Byte
    
    If Dizi Is Nothing Then
        Set Dizi = VBA.CreateObject("Scripting.Dictionary")
    End If
    
10  Randomize Timer
    If Dizi.Count = 25 - 2 + 1 Then
        MsgBox "Tüm değerlerin seçimi tamamlandı..."
        Set Dizi = Nothing
        Exit Sub
    End If
    
    X = WorksheetFunction.RandBetween(2, 25)
    
    If Not Dizi.Exists(X) Then
        Dizi.Add X, False
        MsgBox X
    Else
        GoTo 10
    End If
End Sub
 
Üst