Excelde random sayı dizinleri oluşturma...?

Katılım
1 Nisan 2009
Mesajlar
9
Excel Vers. ve Dili
excel 2007
Mrb arkadaslar,

Excelde bir problem çözmek istiyorum. Örneğin: 5 sütun dan oluşan bir problemim olsun ve bu sütunların her birine 1 den 5 e kadar rastgele sayı yazılsın (buraya kadar olan kısmını yapabiliyorum) fakat her sütun bir birinden önceki sütunlarda seçilen tercihin dışında tutsun.Yani A sütunu 1 ile 5 arasında 5 sayıdan birini seçecek B sütununda 1 ile 5 arasında A da seçilen hariç 4 sayı içinden seçim yapılacak, C sütununda 1 ile 5 arası A ve B sütununda seçilenler hariç 3 sayı arasından seçilsin. Böylece D sütunu 2 sayı arasından seçim yapacak E sütunu da sona kalan rakamı seçecektir. Bu şekilde bir seçimi excel de nasıl yapabiliriz ya da yapılabilir mi ? Bilen arkadaşların yardımlarını bekliyorum. Şimdiden çok teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,374
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Sanırım A1:F1 arasında 5 ayrı sayı istiyorsunuz. Eğer böyle ise aşağıdaki kodları deneyebilirsiniz.


Sub Rasgele()
Dim i, Sayı As Integer
Dim c As Range
For i = 1 To 5
Do
Randomize
Sayı = Int((5 * Rnd) + 1)
Set c = Range("A1:F1").Find(Sayı, LookIn:=xlValues)
Loop While Not c Is Nothing

Cells(1, i) = Sayı
Next i
End Sub
 

Ekli dosyalar

Katılım
1 Nisan 2009
Mesajlar
9
Excel Vers. ve Dili
excel 2007
Teşekkürler Necdet bey, evet yaptırmak istediğim bir bakıma böyle bir şeydi fakat her sütunun aşagıya doğru da atama yapmasını istiyordum. Açıklayıcı örneği ekte yolladım yardımcı olabilirseniz sevinirim. Tekrardan teşekkürler. iyi çalışmalar.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,374
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Kaç satır rasgele sayı üretileceğini söylememişsiniz, bende bunu inputbox ile alıp kurguyu ona göre yaptım. Umarım kendi işinize uyarlayabilirsiniz.


Kod:
Sub Rasgele()
Dim i, Sat, Sayı, Adet As Integer
Dim c As Range
Adet = Application.InputBox("Kaç Satır İstiyorsunuz", "Adet Belirleme", 1, Type:=1)
If Adet = 0 Then Exit Sub
Application.ScreenUpdating = False
Range("B3:F65536").ClearContents
For Sat = 1 To Adet
    For i = 1 To 5
    Do
    Randomize
    Sayı = Int((5 * Rnd) + 1)
    Set c = Range("B" & Sat + 2 & ":F" & Sat + 2).Find(Sayı, LookIn:=xlValues)
    Loop While Not c Is Nothing
    
    Cells(Sat + 2, i + 1) = Sayı
    Next i
Next Sat
Application.ScreenUpdating = True
MsgBox "İşlem Tamam...."
End Sub
 

Ekli dosyalar

Katılım
1 Nisan 2009
Mesajlar
9
Excel Vers. ve Dili
excel 2007
Teşekkürler Necdet bey, ellerinize sağlık çok yardımcı oldunuz. İyi çalışmalar.
 
Katılım
1 Nisan 2009
Mesajlar
9
Excel Vers. ve Dili
excel 2007
Kısıtlarıda dahil etmek için

Merhabalar,

Ekteki dosyada ne yapmak istediğimi tam olarak yazmaya çalıştım, yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Üst