Kodun İçinde Random Sayı Üretmek

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,434
Excel Vers. ve Dili
Ofis 2016
Merhaba Arkadaşlar,
Excel sayfasından veri almadan, Makro kodu içinde 2 basamaklı, 10 ve 99 arasında ve içinde 5 barındırmayan rastgele sayı üretmek mümkün mü ?
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
28,901
Excel Vers. ve Dili
OFFICE 2019 PRO TR
Deneyiniz.

C++:
Option Explicit

Sub Rastgele_Sayi_Uret()
    Dim Sayi As Byte
10  Sayi = WorksheetFunction.RandBetween(10, 99)
    If InStr(1, Sayi, 5) > 0 Then GoTo 10
    If Left(Sayi,  1) = Right(Sayi, 1) Then GoTo 10
    MsgBox Sayi
End Sub
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,434
Excel Vers. ve Dili
Ofis 2016
Deneyiniz.

C++:
Option Explicit

Sub Rastgele_Sayi_Uret()
    Dim Sayi As Byte
10  Sayi = WorksheetFunction.RandBetween(10, 99)
    If InStr(1, Sayi, 5) > 0 Then GoTo 10
    MsgBox Sayi
End Sub
Üstad harikasınız, elinize aklınıza sağlık. Bir noktayı atlamışım. Acaba 11-22-33 gibi aynı sayıları üretmemesi sağlanabilir mi !
 
Katılım
21 Aralık 2016
Mesajlar
307
Excel Vers. ve Dili
2013 TR
Selamlar,
Öncelikle belirtmeliyim ki, Makro bilgim kısıtlıdır....

Makro kodu içinde 2 basamaklı, 10 ve 99 arasında ve içinde 5 barındırmayan rastgele sayı üretmek

Sadece Aktif hücreye

Rich (BB code):
Sub RastAct()
   ActiveCell = Evaluate("=INDEX({1,2,3,4,6,7,8,9},RANDBETWEEN(1,8))*10+INDEX({0,1,2,3,4,8,6,7,8,9},RANDBETWEEN(1,9))")
End Sub

Seçilecek herhangi alana

Kod:
Sub RastRng()
   With Selection
      .Formula = "=INDEX({1,2,3,4,6,7,8,9},RANDBETWEEN(1,8))*10+INDEX({0,1,2,3,4,8,6,7,8,9},RANDBETWEEN(1,9))"
      .Value = .Value
   End With
End Sub
Not : Ben yazana kadar soru cevaplanmış....
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,434
Excel Vers. ve Dili
Ofis 2016
Selamlar,
Öncelikle belirtmeliyim ki, Makro bilgim kısıtlıdır....

Makro kodu içinde 2 basamaklı, 10 ve 99 arasında ve içinde 5 barındırmayan rastgele sayı üretmek

Sadece Aktif hücreye

Rich (BB code):
Sub RastAct()
   ActiveCell = Evaluate("=INDEX({1,2,3,4,6,7,8,9},RANDBETWEEN(1,8))*10+INDEX({0,1,2,3,4,8,6,7,8,9},RANDBETWEEN(1,9))")
End Sub

Seçilecek herhangi alana

Kod:
Sub RastRng()
   With Selection
      .Formula = "=INDEX({1,2,3,4,6,7,8,9},RANDBETWEEN(1,8))*10+INDEX({0,1,2,3,4,8,6,7,8,9},RANDBETWEEN(1,9))"
      .Value = .Value
   End With
End Sub
Not : Ben yazana kadar soru cevaplanmış....
Üstad çok teşekkür ellerinize, aklınıza sağlık. Sayenizde bir teknik öğrenmiş oldum.
Acaba 11-22 gibi birbirinin aynı sayıları üretmemesi sağlanabilir mi ?
 
Üst