اذهب الي المحتوي
أوفيسنا

دالة تقوم بعمل ترتيب عشوائى لقيم معطاة


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

 استاذ مختار /الدّالة التي اعطيتها يمكن ان تكرر المعطيات

اليكم هذا الكود لهذا الغرض

Sub rand_without_rep()

Dim myrng As Range, cel As Range, x As Double

Set myrng = Range("A1:A100") 'ممكن التغيير
myrng.Value = ""
If myrng.Count > 100 Then Exit Sub
Randomize
For Each cel In myrng
1 x = WorksheetFunction.RandBetween(1, 100)
If Application.CountIf(myrng, x) Then GoTo 1 Else cel = x
Next

End Sub

 



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

بارك الله فيكم إخواني الكرام

إثراءاً للموضوع

في الخلية A1 ضع المعادلة التالية

=RAND()

اسحب المعادلة حتى الخلية A100

 كدا العمود A بنسميه عمود مساعد

 

في الخلية B1 اكتب المعادلة التالية واسحبها لحد B100

=RANK(A1,$A$1:$A$100)

بس خلاص ..

تقبلوا تحياتي

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

حل آخر

ضع المعادلة التالية في الخلية A2

=LARGE(ROW($1:$100)*NOT(COUNTIF($A$1:A1,ROW($1:$100))),RANDBETWEEN(1,101-ROW(A1)))

واضغط Ctrl + Shift + Enter

واسحب المعادلة لحد الخلية A101

بس خلاص

تقبل تحياتي

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

وهذا حل آخر بالأكواد

Sub RandBewteenTwoNumbersNoDuplicates()
'[A1:A100] يقوم الكود بتوليد أرقام عشوائية ما بين الرقم واحد ومائة في النطاق
'---------------------------------------------------------------------------
    Dim B(100), C, R
'حلقة تكرارية تنتهي بمجرد الوصول لرقم الصف 100 في العمود الأول
    Do
'دالة توليد أرقام عشوائية ما بين 1 و 100
      C = Application.RandBetween(1, 100)
'مصفوفة بها 100 عنصر [B] يمثل المتغير
'[B] داخل المصفوفة [C] هنا يتم اختبار أو فحص العنصر
'إذا لم يكن العنصر داخل المصفوفة
        If Not B(C) Then
'هذا السطر يمثل رقم الصف
            R = R + 1
'[C] الخلية في الصف رقم كذا في العمود الأول تساوي العنصر
            Cells(R, "A") = C
'للعنصر الذي تم وضعه ضمن القيم ليتم استبعاده في حالة التكرار [True] تعيين القيمة
            B(C) = True
        End If
    Loop Until R = 100
End Sub

عشان متقولوش إني حارمكم من حاجة

تقبلوا تحياتي

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

أشكرك أستاذى الفاضل سليم  على الإضافة

كما أشكر أخى وأستاذى ياسر على الزيادة .

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

شكرا أساتذتى الفضلاء 

شكرا لكم جميعا 

:yes: 

لكن للأسف سوف اهتم بالمعادلات الان بسسب Language DLL VBE6INTL.DLL

عشان عندى مشكلة يا ريت يكون لييها عندكم حل بالنسبة للفيجوال بيسك عندى مش شغال بسب انه ملف اعتقد مش موجود عندى وهو Language DLL VBE6INTL.DLLLanguage DLL VBE6INTL.DLL

يا ريت لو فيه حل بل ما اغير الويندوز 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information