• DİKKAT

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

Benzersiz rastgele sayı oluşturma

Katılım
18 Kasım 2011
Mesajlar
406
Excel Vers. ve Dili
excel 2016 türkçe
Arkadaşlar excelde A1-Z1 arasında 1-100 arasında benzersiz sayılar oluşturmak istiyorum nasıl yapabilirim?
 
Merhaba,

Tag'daki kodu kullanabilirsiniz. Ben 100'e kadar üretmesini istedim aralığı siz belirleyebilirsiniz.

Kod:
Sub sayiuret()
Randomize
    
   For Each alan In Range("a1:z1")
10  Sayi = Int(Rnd *[COLOR="Red"] 100[/COLOR])
      If WorksheetFunction.CountIf(Range("A1:Z1"), Sayi) > 0 Then GoTo 10
alan.Value = Sayi
Next
End Sub
 
Merhaba,

Tag'daki kodu kullanabilirsiniz. Ben 100'e kadar üretmesini istedim aralığı siz belirleyebilirsiniz.

Kod:
Sub sayiuret()
Randomize
    
   For Each alan In Range("a1:z1")
10  Sayi = Int(Rnd *[COLOR="Red"] 100[/COLOR])
      If WorksheetFunction.CountIf(Range("A1:Z1"), Sayi) > 0 Then GoTo 10
alan.Value = Sayi
Next
End Sub

Merhaba Arkadaşlar,

Yukarıdaki kod 0(sıfır) dan başlayarak sayı üretiyor.
Bunu 1 den başlatabilir miyiz?
 
Aşağıdaki kodu deneyiniz:

Kod:
Sub rastgele()
For i = 1 To 26
10:
    sayı = WorksheetFunction.RandBetween(1, 100)
    If WorksheetFunction.CountIf(Range(Cells(1, "A"), Cells(1, i)), sayı) > 0 Then GoTo 10
    Cells(1, i) = sayı
Next
End Sub
 
Yusuf bey yanıtınız için teşekkür ediyorum.
Yalnız ben yukarıdaki kodu aşağıdaki şekilde kendime göre düzenlemiştim.
Siz tamamen farklı bir kod gönderince uyarlayamadım.
Aşağıdaki kodda 1 den nasıl başlatırız?

Sub sayiuret_2()
Randomize

For Each alan In Range("B1:B" & [D3])
10 Sayi = Int(Rnd * Range("D3"))
If WorksheetFunction.CountIf(Range("B1:B" & [D3]), Sayi) > 0 Then GoTo 10
alan.Value = Sayi
Next
End Sub
 
Aşağıdaki gibi olur muhtemelen:

Kod:
Sub sayiuret_2()
Randomize

For Each alan In Range("B1:B" & [D3])
10 Sayi = [COLOR="red"]WorkSheetFunction.Max(1,[/COLOR]Int(Rnd * Range("D3"))[COLOR="Red"])[/COLOR]
If WorksheetFunction.CountIf(Range("B1:B" & [D3]), Sayi) > 0 Then GoTo 10
alan.Value = Sayi
Next
End Sub
 
Çok telekkür ediyorum Yusuf bey. Üretilen sayı adedini seçilen alandan bir fazla yapınca kod sorunsuz çalıştı.

Bir şey daha sormak istiyorum:

Range("B1:B" & [D3])

ile B1 den başlayıp B sütununda [D3] hücresindeki değere kadar işlem yapmasını sağlamış oluyorum.
Aynı ifade içinde B1 ifadesindeki "1" değerini de seçtiğim bir hücreden almasını nasıl sağlarım.
Böylece başlangıç ve bitiş aralığını excel üzerinden belirlemiş olucam.
 
Örneğin D1'den alması için:

Kod:
Range("B" & [D1] & ":B" & [D3])
 
Her şey tam istediğim gibi yerine oturdu Yusuf bey.
Zihninize sağlık.

İyi çalışmalar.
 
Geri
Üst