• DİKKAT

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

1--52 arası sayıları Karıştırmak...

Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Pazarınız aydın olsun diyeceğim ama İstabul'da hava oldukça kapalı...

Dim Sayı(1 to 52)

1 den 52 ye kadar sayıları Randomize ve Rnd kullanarak; her bir sayıyı bir kere kullanmak üzere en hızlı şekilde karışık nasıl sıralıyabiliriz?

Tabii Bu sayıları X=1 to X=52 kadar Sayı(X) değişkenine atayacağız...

Saygılarımla...
 
Kod:
Sub deneme()
Dim sayi(1 To 52) As Integer
    For x = 1 To 52
        sayi(x) = x
    Next x
    randomize timer
    For x = 1 To 52
bas:
        say = Int(Rnd(x) * 52)
        If say > 52 Or say < 1 Then GoTo bas
        ara = sayi(x)
        sayi(x) = sayi(say)
        sayi(say) = ara
    Next x
    For x = 1 To 52
        Cells(x, 1) = sayi(x)
    Next x
End Sub
 
&#199;ok Sa&#287;olun Say&#305;n Veysel;

Forumda buldu&#287;um a&#351;a&#287;&#305;daki kod da h&#305;zl&#305; &#231;al&#305;&#351;&#305;yor ama 0 dan ba&#351;l&#305;yor halbuki ben 1 den ba&#351;lamas&#305;n&#305; istiyorum..

Sub D&#252;&#287;me3_T&#305;klat()

Dim arr() As Long

ReDim arr(52 - 1)
say = 0 'Bundan kaynaklan&#305;yor olabilirmi?
For i = Min To Max
arr(say) = i
say = say + 1
Next

For j = 0 To UBound(arr)
x = Int(((Max - Min) * Rnd))
temp = arr(x)
arr(x) = arr(j)
arr(j) = temp
Next j
For i = 0 To UBound(arr)
Cells(i + 1, 1) = arr(i)
Cells(i + 1, 2) = i
Next

End Sub
 
Tekrar te&#351;ekk&#252;rler &#231;ok da h&#305;zl&#305; &#231;al&#305;&#351;&#305;yor...
 
Sayıları Karıştır, 4 e ayır ve sırala

Gününüz aydın olsun;

1 den 60 a kadar olan sayıları karıştırdık. Kod aşağıda ama bunları (karışık sıralanmış sayıları) 15 lik guruplar halinde kendi aralarında küçükten büyüğe doğru sıraya koyamayı beceremedim... Yardımlarınıza ihtiyacım var... Örnek dosya aşağıda.. Şimdiden çook teşekkürler...

Saygılarımla.

Dim CB(60) As Integer

Sub Auto_Open()
'------------------------------------
' 1 den 60 kadar olan rakamları karıştırmak
Randomize Timer
For I = 1 To 60
CB(I) = I
Next I
For I = 1 To 60
J = Int(Rnd * 60) + 1
CB(0) = CB(I)
CB(I) = CB(J)
CB(J) = CB(0)
Next I
For I = 1 To 60
Cells(I, 2) = CB(I)
Next I

'Karıştırılan Sayılardan ilk 15 ini kendi arasında küçükten büyüğe sıralamak
For I = 1 To 15
Cells(I + 1, 1) = Cells(I, 2)
Next I

'Sonrada diğer 15 lik gurupları kendi arasında küçükten büyüğe sıralamak
For I = 16 To 30
Cells(I + 1, 1) = Cells(I, 2)
Next I

For I = 31 To 45
Cells(I + 1, 1) = Cells(I, 2)
Next I

For I = 46 To 60
Cells(I + 1, 1) = Cells(I, 2)
Next I

' Takıldığım yer bu ara
' Yardımlarınız için teşekkürler


End Sub
 
Kod:
Dim CB(60) As Integer
Sub Auto_Open()
'------------------------------------
' 1 den 60 kadar olan rakamlar&#305; kar&#305;&#351;t&#305;rmak
    Randomize Timer
    For I = 1 To 60
        CB(I) = I
    Next I
    For I = 1 To 60
        J = Int(Rnd * 60) + 1
        CB(0) = CB(I)
        CB(I) = CB(J)
        CB(J) = CB(0)
    Next I
    For I = 1 To 60
        Cells(I, 2) = CB(I)
    Next I
    bas = 1: son = 15: GoSub siralaYaz
    bas = 16: son = 30: GoSub siralaYaz
    bas = 31: son = 45: GoSub siralaYaz
    bas = 46: son = 60: GoSub siralaYaz
    Exit Sub
siralaYaz:
    For x = bas To son - 1
        For y = x + 1 To son
            If CB(x) > CB(y) Then
                CB(0) = CB(x)
                CB(x) = CB(y)
                CB(y) = CB(0)
            End If
        Next y
    Next x
    For x = bas To son
        Cells(x, 1) = CB(x)
    Next x
    Return
End Sub
 
mokro kaydet yöntemi ile koda yaptığım ek ile çözüm ektedir.
 
merhaba
yapmaya &#231;al&#305;&#351;t&#305;&#287;&#305;n&#305;z olsa olsa bri&#231; program&#305;d&#305;r. bitti&#287;inde g&#246;rmek isterim
 
Say&#305;n VeyselEmre &#220;stad&#305;m ve Say&#305;n metinozlu her ikinize de sonsuz te&#351;ekk&#252;rler.

Metin beyin &#231;&#246;z&#252;m&#252; olduk&#231;a ilgin&#231; ama uzun bir kod... Veysel hoczm&#305;nki ise son derece pratik... bilginize ve eme&#287;inize sa&#287;l&#305;k...
 
Helal Olsun...

merhaba
yapmaya çalıştığınız olsa olsa briç programıdır. bittiğinde görmek isterim

Hocam senden de hiç bir kaçmıyor. Helal olsun valla... Hep birlikte yapacağız inşallah... Ben image kısmını halettim de gerisi Forum dostlarıyla...:) :)
 
Geri
Üst