اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

توليد ارقام عشوائية بدون تكرار


إذهب إلى أفضل إجابة Solved by lionheart,

الردود الموصى بها

تفضل يمكنك استخدام هذه الدالة المعرفة 

=RandomNumbers(1,60,0)
Public Function RandomNumbers(Num1 As Long, Num2 As Long, Optional Decimals As Integer)
Application.Volatile
Randomize
If IsMissing(Decimals) Or Decimals = 0 Then
    RandomNumbers = Int((Num2 + 1 - Num1) * Rnd + Num1)
Else
    RandomNumbers = Round((Num2 - Num1) * Rnd + Num1, Decimals)
End If
End Function

عدم التكرار.xlsm

  • Like 5
  • Thanks 1
رابط هذا التعليق
شارك

  • أفضل إجابة
Sub Test()
    GenerateUniqueRandom ActiveSheet, "D3:F22", 1, 60
End Sub

Sub GenerateUniqueRandom(ByVal shTarget As Worksheet, ByVal sRng As String, ByVal iStart As Long, iEnd As Long)
    Dim w, v, rng As Range, c As Range, n As Long, i As Long, ii As Long, r As Long
    Set rng = shTarget.Range(sRng)
    If iEnd - iStart + 1 > rng.Cells.Count Then MsgBox "Generated Numbers Greater Than Range Cell Count", vbExclamation: Exit Sub
    w = Evaluate("ROW(" & iStart & ":" & iEnd & ")")
    n = 0
    ReDim v(1 To rng.Rows.Count, 1 To rng.Columns.Count)
    For i = LBound(v, 1) To UBound(v, 1)
        For ii = LBound(v, 2) To UBound(v, 2)
            r = Application.RandBetween(iStart, UBound(w) - n)
            v(i, ii) = w(r, 1)
            w(r, 1) = w(UBound(w) - n, 1)
            n = n + 1
        Next ii
    Next i
    rng.Cells(1).Resize(UBound(v, 1), UBound(v, 2)).Value = v
End Sub

 

  • Like 5
  • Thanks 1
رابط هذا التعليق
شارك

شكرا استاذي  Ali Mohamed Ali على سرعة الرد وجزاك الله كل خير

بالنسبة للمعادلة التي طرحتها فهي جميلة ورائعة ولكن هناك تكرار في الارقام في المجال (d3:f22) يعني الرقم يعاد اكثر من مرة .

اما بالنسبة للمعادلة التي طرحها الاستاذ lionheart جملية وكافية ولكن لا استطيع التحكم في القيمة العشوائية زيادة او نقصان فهي تعمل على مجال محدد من 1 الى 60 فقط

مختصر القول هل بالامكان اصافة خانة احدد فيها الرقم العشوائي من 1 الى اي رقم ارغب فيه

.. اما بالنسبة لتاخر ردي سابقا فهذا راجع لضروفي الخاصة فمعذرة استاذي... 

رابط هذا التعليق
شارك

السلام عليكم ... حسب التنبيهات انك قمت بالرد والتغيير في المعادلة وانك ادرجت حلا ولكني لم الاحظ ذلك ...

ولهذا فانا ارغب بتغيير الرقم 60 بالزيادة او النقصان حسب الحاجة ويا ريت تكون خانة داخل الشيت تحدد فيها البداية والنهاية للارقام العشوائية حسب حاجتي لذلك زايدة اونقصان وشكرا استاذي

10.PNG

رابط هذا التعليق
شارك

شكرا استاذي على الرد وياريت تعملي تطبيق على الملف المرفق بارك الله فيك لاني لم افهم قصدك جيدا وكيفية استبدل الرقم 1 بقيمة الخلية ("A1")

عدم التكرار.xlsm

رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information