• DİKKAT

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

Seçilmiş ölçüler içinden rastgele sayı gelmesi yardım

Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
bir makinam var excele doğru yanlış kodu geliyor. Makine uzun süre doğru kodda bekliyor iş bitince anlık yanlış kod yazıyor anlık işi gönderince tekrar doğruda beklemeye devam ediyor. Ben şunu istiyorum bir kutumda makinenin ölçü değeri var bu değerler (0,5-0,75-1-1,25) şeklinde el ile yazıyorum bu rastgele 4 tane değeri.

ölçü değeri=1,25
makina kod= doğru
makina kod=anlık yanlış oldu yanlışta iken değer değişmesin
ölçü değeri=(1,25 dikkat değişmedi)
makina kod=doğru
ölçü değeri=0,75 değişti (tekrar doğru kod ve değişti)
makina kod=hayır
ölçü değeri=0,75 (dikkat değişmedi)
makina kod=doğru
ölçü değeri=1 değişti (tekrar doğru kod ve değişti)

işleyiş böyle olacak doğru yanlış kutucuğu var buraya nasıl ölçü bölümüne atacağız hangi formülle yardım.
 
Lütfen yardım

Merhaba sevgili hocam, bir küre var, küre içerisinde 1'den 100'e kadar sayılar var fakat her sayıdan farklı miktarda var, örneğin 1'den 8 tane, 4'ten 6 tane, 63'ten 7 tane sayı var ve biz bu küre içerisinden 10 tabe sayı çekeceğiz, hangi sayıların geleceği önemli değil, bunu excel'de nasıl formüle edebiliriz? Yardımcı olursanız çok memnun oluruz efendim...
 
Merhaba, cep telefonundan yazıyorum.

RASTGELEARADA işlevini araştırmanızı öneririm.
.
 
Rastgelearada işlevini araştırdım fakat, bununla sadece 1'den 100'e kadar olan sayılar arasında rastgele sayılar çıkıyor. Fakat benim ihtiyacım olan şey her sayıdan farklı miktarda olacak küreden çekilen toplar gibi... mesela 8 tane 1, 6 tane 2, 6 tane 3 diye 100'e kadar devam edecek... bunlar arasında sıralama yapacak...
 
En iyisi bir örnek belge hazırlayın ve cevabımın altındaki İMZA bölümünde belirttiğim şekilde foruma yükleyin.
Bir üye mutlaka cevap yazacaktır.
.
 
Rastgelearada işlevini araştırdım fakat, bununla sadece 1'den 100'e kadar olan sayılar arasında rastgele sayılar çıkıyor. Fakat benim ihtiyacım olan şey her sayıdan farklı miktarda olacak küreden çekilen toplar gibi... mesela 8 tane 1, 6 tane 2, 6 tane 3 diye 100'e kadar devam edecek... bunlar arasında sıralama yapacak...
Merhaba.

-- Alt taraftan, uygulama yapmak istediğiniz excel sayfasının adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- Açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın,
-- Sayfaya bir düğme/şekil/metin kutusu ekleyerek, bu düğme/şekil/metin kutusuna sağ tıklayıp MAKRO ATAyı seçin.
-- Açılacak küçük ekrandaki listeden ÇEKİLİŞ_BRN'yi seçerek işlemi onaylayın,
-- Sayfadaki düğmeye tıkladığınızda istediğiniz işlem gerçekleşir.
-- Yeşil renklendirdiğim satırlar işleme en olmaz. Bu satırlarda kod'un hangi kısmında hangi işlemin yapıldığı açıklandı.
-- Bu yeşil kısımları silerek de işlem yapabilirsiniz.
.
Kod:
[B]Sub ÇEKİLİŞ_BRN()[/B]
Range("A2:E" & Rows.Count).ClearContents
[COLOR="SeaGreen"]'*** A sütununa 1'den 100'e kadar sayı yazmak için döngü oluşturuluyor[/COLOR]
    For a = [B][COLOR="red"]1[/COLOR][/B] To [COLOR="red"][B]100[/B][/COLOR]
        Cells([A65536].End(3).Row + 1, 1) = a
        Cells([A65536].End(3).Row, 4) = a
[COLOR="seagreen"]'*** B sütununa [B][COLOR="Red"]1[/COLOR][/B] ile [COLOR="red"][B]5[/B][/COLOR] arasında rastgele sayı yazılıyor (Bu A sütunandeki sayının tekrar sayısı)[/COLOR]
        tekrar = WorksheetFunction.RandBetween([B][COLOR="red"]1[/COLOR][/B], [B][COLOR="red"]5[/COLOR][/B])
        Cells([B65536].End(3).Row + 1, 2) = tekrar
        Cells([B65536].End(3).Row, 5) = tekrar
    Next
On Error GoTo 20
[COLOR="seagreen"]'*** Yukarıdaki kısımda A ve D sütununa 1'den 100'e kadar sayı yazıldı ve
'    B ve E sütununa da bu sayıların kaç kez tekrarlanacağı yazıldı
    
'***Yapılacak çekiliş sayısının sınırı, B sütununa yazılan sayıların TOPLAMIdır.
[/COLOR]    For sat = 2 To WorksheetFunction.Sum(Range("B:B")) + 1
10:     sayı = WorksheetFunction.RandBetween(2, [D65536].End(3).Row)
[COLOR="seagreen"]'*** Üstteki satırda 2 ile A sütunundaki son dolu satırın satır numarası arasında RASTGELE bir sayı çekildi.[/COLOR]
        Cells([C65536].End(3).Row + 1, 3) = Cells(sayı, 1)
[COLOR="seagreen"]'*** Bulunan satır A sütunundaki sayı C sütununa yazıldı.[/COLOR]
            If Cells(sayı, 5) = 1 Then
[COLOR="seagreen"]            '*** Bulunan satır B sütunundaki sayı (tekrar sayısı) 1 ise aynı sayı tekrar çekilmemesi için;
            ' o satırdaki D ve E sütunu hücreleri silinecek[/COLOR]
                Range(Cells(sayı, 4), Cells(sayı, 5)).Delete Shift:=xlUp
                GoTo 10: End If
            If Cells(sayı, 2) > 1 Then Cells(sayı, 5) = Cells(sayı, 5) - 1
[COLOR="seagreen"]            '*** Bulunan satır E sütunundaki sayı (tekrar sayısı) 1'den büyük ise
            ' o sayı bir kez çıktığına göre E sütunundaki sayı 1 azaltıldı.[/COLOR]
    Next[COLOR="seagreen"] ' İlk sayı bulunup C sütununa yazıldığına ve bulunan sayının karşısındaki tekrar sayısı 1 azaltıldığına göre BİR SONRAKİ SATIR İŞLEMİ için BAŞA DÖNÜLÜYOR.[/COLOR]
20: MsgBox "İşlem tamamlandı..."
[COLOR="seagreen"]'*** İŞLEM BİTTİĞİNDE işlemin bittiği mesajı ekranda görüntülenir.[/COLOR]
[B]End Sub[/B]
 
Çok teşekkür ederim...
 
Geri
Üst