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

(تمت الإجابة) اختيار رقم عشوائي بشرط


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

السلام عليكم ورحمة الله وبركاته

كل عام وانتم بخير

الاخوة الافاضل

ارجو مساعدتي (كما عودتموني دائماً) في هذه المشكلة

المطلوب تم شرحه في المرفق

شاكر مقدر لمجهوداتكم في هذا المنتدى العظيم

test.zip

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

السلام عليكم

كل عام وانتم بخير

أخي العزيز

تقول

المطلوب تم شرحه في المرفق

فتحت الملف ولم أفهم شيئ

إرفق حل يدوي في نفس الملف

مثلا إذا الوقت كذا ، يكون لناتج الذي تريده كذا لأن ...

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

السلام عليكم كل عام وانتم بخير أخي العزيز تقول
المطلوب تم شرحه في المرفق
فتحت الملف ولم أفهم شيئ إرفق حل يدوي في نفس الملف مثلا إذا الوقت كذا ، يكون لناتج الذي تريده كذا لأن ...

اسف لعدم استطاعتي شرح المطلوب

تم ارفاق ملف جديد فيه مثال والمطلوب بالضبط

ارجو ان اكون استطعت شرح المطلوب

مع خالص شكري لكم لمحاولتكم مساعدتي

test.zip

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

السلام عليكم

أخي العزيز

تفضل المرفق

دبل كليك علي أي خلية بالعمود B وانظر النتيجة

وعليكم السلام

اشكر لك اخي طارق اهتمامك

اخي الفاضل ملفك المرفق عند عمل دبل كليك على اي خلية في العمود B يقوم بتحديد مكانها في العمود K

ولكن اخي المطلوب هو

ان يكون هناك ماكرو وعند تشغلية يقوم بالعمل التالي:

يقوم باختيار 30 رقم عشوائي من العمود B ويضعهم في العمود K ولكن بشرط

ان يكون الوقت المختار محصور بين قيمة العموديين L و M

فمثلاً الوقت العشوائي الذي سيتم وضعه في الخليه K2 يجب ان لا يقل عن الوقت

الموجود في الخلية M2 ولا يزيد عن الوقت الموجود في الخلية L2

وهكذا مع باقي الارقام العشوائيه الاخرى

ارجو ان تكون الفكرة وصلت

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

السلام عليكم

أخي الحبيب

الأسهل أن تجد 29 رقم مثلا من الـ 30

بمعني أن تترك فراغا لإنهاء العملية بسرعة

في المرفق 29 رقم فقط:

يقوم الكود بتخليق أرقام عشوائية من 2 إلي 232

ومن ثم يأخذ قيم الخلية التي بهذا الرقم العشوائي (بالعمود B)

ثم يضعها في المكان المناسب لها في العمود K

ويعد الأرقام التي تم تكوينها بالعمود K

إذا وصل عددها إلي 29 رقم ينهي الكود وإلا يبدأ بتكوين رقم عشوائي جديد ويعيد الكرة

المشكلة أنه يختار رقم في نفس المجال

بمعني أنه عشوائيا قد يختار B2 ثم B3 ثم B4 وكلها ستصب في نفس الخلية K2

أي سيكتبها في K2 ثم في K2 ثم في K2

وبمعني آخر أنه قد يختار عشوائيا 10000 رقم ولكنها تقع كلها في 15 خلية مثلا من العمود K

إن لم تترك له فراغ ولو خانة واحدة سيأخذ وقتا طويلا

إن كان عندك وقت تستطيع تغيير الرقم 29 في الكود ليكون 30

يعني

  If WorksheetFunction.Count(Range("K2:K32")) = 30 Then Exit Sub
بدلا من

  If WorksheetFunction.Count(Range("K2:K32")) = 29 Then Exit Sub

أنظر المرفق

test_TAREQ1.rar

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

السلام عليكم

أخي الكريم

هذا الجزء من الكود يكافيء دالة

RAND()
بالإكسل والتي تستحدث رقم عشوائي بين الصفر والواحد بالضبط مثلها
Rnd(1)
لذلك ضربنا ناتجها (حد أقصي 1) بالرقم 230 ثم تأخذ الصحيح منه فقط Int ليكون الناتج بين صفر ، 230 وبإضافة 1 للنتيجة يكون الناتج بين 1 ، 231 وهي الصفوف التي بها الإختيار أما Randomize في أول الكود لتسمح بالعشوائية كلما مر الكود بالأمر
Rnd(1)

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

الاستاذ/ طارق

اشكرك في البداية على التفاعل وتعبك معي

المايكرو الذي عملته في غاية الروعه

ولكن

هناك مشكلتان اذا حلت يكون المايكرو كامل والكامل وجهه الكريم

الاولى:

انه تم تحديد الاختيار بين 231 رقم عشوائي ومن الممكن الرقم عندي ان يزيد

فهل يوجد حل بدلاً من تعديل الماكرو كل مره اذا زاد العدد

والثانية:

ان الماكرو لن يتوقف حتى تكون الخلية ( K33 ) تساوي 29 والا لن يتوقف

فهل يوجد حل بدلاً من تعديل الماكرو كل مره اذا نقص العدد

ارجو ان يتسع صدرك للملاحظات

واشكرك على المساعدة الثمينه

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

انه تم تحديد الاختيار بين 231 رقم عشوائي ومن الممكن الرقم عندي ان يزيد

بعد اذن الاستاذ طارق

استبدل هذا الجزء


x = Int(Rnd(1) * 230) + 1

بهذا
 LR = Range("b10000").End(xlUp).Row - 2

        x = Int(Rnd(1) * LR) + 1

ليتم حساب عدد الصفوف المستخدمة في العمود B واعتمادها كرقم متغير بدل 230

===

بالنسبة للطلب الثاني نرجو التوضيح اكثر فهل المطلوب ربط رقم ايقاف عمل الكود بخليه مثلاً

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

شكرا لكم اخواني على التفاعل

بالنسبة اخي عبدالله للطلب الثاني فهو

في بعض الاوقات لا يكون هناك طباعة فواتير لفترة ليست بالقليلة

فعلى سبيل المثال في مرفق الاستاذ طارق

ستجد انه في الفترة بين 14:46:15 و 14:57:11 لم يتم طباعة اي فاتورة

فلذلك لن يجد المايكرو ارقام ليختار منها بشكل عشوائي

وحسب البرمجه للمايكرو طلب منه ان يجد 29 رقم عشوائي

ولذلك لوكانت هناك فتره اخرى لم يتم بها طباعة فواتير فانه لن يختار الا 28 رقم عشوائي ولن يتوقف ابدا

ارجو ان تكون الصورة اتضحت

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

اخي مجرد......

لم تتضح الصورة

هل تريد ربط عدد الارقام العشوائية بقيمة تدخلها يدوياً في خلية محددة

==

نرجو منك تعديل اسم الظهور ان لم يكن عندك مانع

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

اخي عبدالله

انا نفسي اغير الاسم ولكن لم اعرف الطريقة لتغييره :smile:

بالنسبة للارقام العشوائية لا اريد ان احدد له العدد

فالعدد محدد بالعمود K ب 30 ولكن اذا لم يجد 30 يجب ان يتوقف

وهنا المشكلة بانه لا يتوقف اذا لم يجد 30

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

السلام عليكم ورحمة الله

جرب الكود التالي


Set rngA = Range("K2:K31")

Set rngB = Range("B2:B232")

rngA.ClearContents

For Each celA In rngA

xA1 = WorksheetFunction.CountIf(rngB, "<=" &celA.Offset(0, 1))

xA2 = WorksheetFunction.CountIf(rngB, "<" & celA.Offset(0, 2))

xA3 = xA1 - xA2

If xA3 > 0 Then

xA4 = WorksheetFunction.RandBetween(1, xA3)

xB1 = 0

For Each celB In rngB

If celA.Offset(0, 1).Value >= celB.Value And celA.Offset(0, 2).Value  <= celB.Value Then

xB1 = xB1 + 1

If xB1 = xA4 Then

celA.Value = celB.Value

End If

End If

Next celB

End If

Next celA

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

اخي عبدالله

انا نفسي اغير الاسم ولكن لم اعرف الطريقة لتغييره :smile:

بالنسبة للارقام العشوائية لا اريد ان احدد له العدد

فالعدد محدد بالعمود K ب 30 ولكن اذا لم يجد 30 يجب ان يتوقف

وهنا المشكلة بانه لا يتوقف اذا لم يجد 30

بالنسبة لتغيير الاسم يمكنك الذهاب إلى

لوحة التحكم ----> تعديل اسم الظهور

ثم تكتب الاسم الذي تريده وكلمة المرور الحالية

...........

وبالنسبة لموضوع العدد

أنت الذي قررت أن يكون 30 وتسأل الآن ماذا إذا لم يجد 30

أعتقد أنه يجب مراجعة المطلوب بدقة

حتى لا تتعب الناس معك

وكل عام أنتم بخير

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

اخي الفاضل نعم انا الذي طلبت ان يكون العدد 30

ولم اشتكي لماذا يكون 30

ولكن طلبي ان يتوقف المايكرو اذا لم يجد 30 رقم

كما اشكر للاخوه الذين اتعبتهم معي

واشكر من لم يتحمل اسئلتي

ولك الحرية بمساعدتي او تركي وعدم الرد علي

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

السلام عليكم

اخي الكريم يبدو ان المطلوب مبهم قليلا كما افاد بعض الاخوة

وعلى حسب ما قد استوعبته هنا مرفقين

الاول بالاكواد والثانية بدالة مستحدثة

ولم يحدد عدد الاعداد ولا النطاقات ويتم التغير تلقائيا

ارجو ان تساعدك في طلبك

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

السلام عليكم

أخي الكريم

أولا مبروك عليك تغيير الإسم هذا أفضل

ثانيا أخونا الفاضل العزيز الكريم / محمد صالح mas123 لايقصد طبعا أي إزعاج لك بل طلب منك فقط مراجعة المطلوب

لتوفير الوقت علي كل من يريد المساعدة ،

أخي الحبيب

يبدو أنك غير مداوم علي المنتدي مع أنك عضو منذ 2007

فلم تر كثيرا من أعمال المايسترو / محمد صالح mas123

حتي وإن ضايقك جزء من تعليقه

فأنا أحب إنزال الرجل قدره وأتعلم منه كثيرا

وأحب التعامل معه كما يجب التعامل مع العلماء

أرجو ألا تتضايق من تعليقي أنا أيضا

وأرجو ألا تدع للشيطان بيننا سبيلا

أما بالنسبة لسؤالك فأنا والحمد لله فهمت تماما ماتعنيه

ولكني لم أطلع بعد علي مشاركة أخواي الخالدي والحسامي

فإن كان الموضوع تم حله فبها ونعم

وإلا سأحله لك بإذن الله في أقرب وقت

أعذرني علي الإطالة

وكل عام وأنتم جميعا بألف خير

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

الاستاذ/ طارق & الاستاذ/ الحسامي & الاستاذ/ الخالدي & الاستاذ/ عبدالله المجرب & الاستاذ/ محمد صالح

وباقي الاخوه الافاضل في هذا الصرح العظيم

أولاً: كل عام وانتم بخير

ثانياً: أقدم لكم خالص شكري وتقديري على مساعدتي فقد وصلت لطلبي بعد الله بفضل مجهوداتكم

ثالثاً: اخي طارق بخصوص اني مسجل من 2007 . نعم انا والله لا انقطع ابدا عن هذا المنتدى واتعلم منه في كل يوم شي جديد

ولكن يعيبني اني لاكتب ابداً واعرف اني مقصر من هذه الناحية ولكن اعدكم بان يتغير الحال الى الافضل

رابعاً: كنت اتمنى ممن غيير اسمي ان يتم الرجوع الي في الاسم قبل تغييره واتمنى منه ان يعيد تغييره الى (خالـ(ابوعثمان)ـد)

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

رابعاً: كنت اتمنى ممن غيير اسمي ان يتم الرجوع الي في الاسم قبل تغييره واتمنى منه ان يعيد تغييره الى (خالـ(ابوعثمان)ـد)

تم تغيير اسم الظهور الى الاسم المطلوب وكل الشكر للاستاذ محمد طاهر مدير الموقع

ابواحمد

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information