منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أرجوكم ساعدوني في هذا الكود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
أرجو من أعضاء المنتدى مساعدتي في إتمام برنامج يساعدني في عملي هذا وجعل الله هذا     في ميزان حسناتكم

أعمل في ورشة صغيرةمكونة من 10 عمال

المطلوب

 كود لتوزيع 10 أماكن عمل على 10 عمال  
 مع الأخد بعين الإعتبار  تغيير مكان العمل   بالنسبة لكل عامل   يوميا
 مع عدم تكرار  مكان العمل لأي عامل إلا بعد مرور  10  أيام

أرجوكم هل من مجيب !؟؟ Sad
انشئ 11 ليست بوكس و كوماند واحد و اعمل كود ادخال اسماء / ارقام على ليست 11

و انسخ هذه الاكواد :

Private Sub Command1_Click()
For g = 0 To 9
l = List11.List(g)
List1.List(g) = List11.List(g)
If g + 1 < 10 Then List2.List(g + 1) = List11.List(g)
If g + 2 < 10 Then List3.List(g + 2) = List11.List(g)
If g + 3 < 10 Then List4.List(g + 3) = List11.List(g)
If g + 4 < 10 Then List5.List(g + 4) = List11.List(g)
If g + 5 < 10 Then List6.List(g + 5) = List11.List(g)
If g + 6 < 10 Then List7.List(g + 6) = List11.List(g)
If g + 7 < 10 Then List8.List(g + 7) = List11.List(g)
If g + 8 < 10 Then List9.List(g + 8) = List11.List(g)
If g + 9 < 10 Then List10.List(g + 9) = List11.List(g)
Next
Dim I As Integer
gg = 9
ga = 2
For g = 0 To 9
On Error Resume Next
l = List11.List(gg)
I = ga

If g + 0 < 10 And Controls("List" & CStr(I)).List(0) = "" Then Controls("List" & CStr(I)).List(0) = l
If g + 1 < 10 And Controls("List" & CStr(I + 1)).List(1) = "" Then Controls("List" & CStr(I + 1)).List(1) = l
If g + 2 < 10 And Controls("List" & CStr(I + 2)).List(2) = "" Then Controls("List" & CStr(I + 2)).List(2) = l
If g + 3 < 10 And Controls("List" & CStr(I + 3)).List(3) = "" Then Controls("List" & CStr(I + 3)).List(3) = l
If g + 4 < 10 And Controls("List" & CStr(I + 4)).List(4) = "" Then Controls("List" & CStr(I + 4)).List(4) = l
If g + 5 < 10 And Controls("List" & CStr(I + 5)).List(5) = "" Then Controls("List" & CStr(I + 5)).List(5) = l
If g + 6 < 10 And Controls("List" & CStr(I + 6)).List(6) = "" Then Controls("List" & CStr(I + 6)).List(6) = l
If g + 7 < 10 And Controls("List" & CStr(I + 7)).List(7) = "" Then Controls("List" & CStr(I + 7)).List(7) = l
If g + 8 < 10 And Controls("List" & CStr(I + 8)).List(8) = "" Then Controls("List" & CStr(I + 8)).List(8) = l
If g + 9 < 10 And Controls("List" & CStr(I + 9)).List(9) = "" Then Controls("List" & CStr(I + 8)).List(9) = l
gg = gg - 1
ga = ga + 1
Next



End Sub

Private Sub Form_Load()
For g = 0 To 9
List1.AddItem ""
List2.AddItem ""
List3.AddItem ""
List4.AddItem ""
List5.AddItem ""
List6.AddItem ""
List7.AddItem ""
List8.AddItem ""
List9.AddItem ""
List10.AddItem ""
List11.AddItem g + 1
Next

End Sub

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

طبعا كل سطر من هذه الليستات يعبر عن يوم واحد
استخدم كود  أى  من الزرين الآتيين
مع استبدال الجملة N=6   بالجملة N=10 أو بجملة INPUTBOX ان كان عدد العمال سيتغير
وطبعآ يمكنك وضع النتائج فى TEXTBOX بدلآ من طباعتها على الفورم

Dim X(20, 20) As Integer
Private Sub Command1_Click()
N = 6

For I = 1 To N
For J = I To I + N - 1
X(I, J) = J
If X(I, J) > N Then X(I, J) = X(I, J) - N
Print X(I, J)
Next J
Print "------------------------"
Next I
End Sub

Private Sub Command2_Click()
N = 6

For I = 1 To N
For J = I To N
X(I, J) = J
Print X(I, J)
Next J
For J = N + 1 To I + N - 1
X(I, J) = J - N
Print X(I, J)
Next J
Print "------------------------"
Next I

End Sub