المشاركات : 2
المواضيع 1
الإنتساب : Apr 2015
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
أرجو من أعضاء المنتدى مساعدتي في إتمام برنامج يساعدني في عملي هذا وجعل الله هذا في ميزان حسناتكم
أعمل في ورشة صغيرةمكونة من 10 عمال
المطلوب
كود لتوزيع 10 أماكن عمل على 10 عمال
مع الأخد بعين الإعتبار تغيير مكان العمل بالنسبة لكل عامل يوميا
مع عدم تكرار مكان العمل لأي عامل إلا بعد مرور 10 أيام
المشاركات : 491
المواضيع 63
الإنتساب : Sep 2013
السمعة :
2
الشكر: 33
تم شكره 272 مرات في 75 مشاركات
17-04-15, 04:53 AM
(آخر تعديل لهذه المشاركة : 17-04-15, 05:01 AM {2} بواسطة asto.)
انشئ 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
ثم رتب الفورم كما تريد او عدل على كيفك
طبعا كل سطر من هذه الليستات يعبر عن يوم واحد
المشاركات : 703
المواضيع 129
الإنتساب : Sep 2013
السمعة :
12
الشكر: 428
تم شكره 777 مرات في 196 مشاركات
استخدم كود أى من الزرين الآتيين
مع استبدال الجملة 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