11-05-13, 05:34 PM
كود :
Private Sub Command1_Click()
Dim iFrom() As Integer
Dim iTo() As Integer
Dim A1 As String
Dim N1 As String
Dim A As Integer
Dim N As Integer
Dim I, Z As Integer
A1 = InputBox("أدخل عدد الأشياء", "الكبابي", "")
N1 = InputBox("أدخل عدد العوامل", "الكبابي", "")
If IsNumeric(Trim$(A1)) = False Then
MsgBox "يجب أن يكون عدد الأشياء رقماً", vbOKOnly + vbExclamation, "الكبابي"
Exit Sub
End If
If IsNumeric(Trim$(N1)) = False Then
MsgBox "يجب أن يكون عدد العوامل رقماً", vbOKOnly + vbExclamation, "الكبابي"
Exit Sub
End If
If Val(Trim$(A1)) <= 0 Or Val(Trim$(N1)) <= 0 Then
MsgBox "يجب أن يكون عدد الأشياء وعدد العوامل أكبر من الصفر", vbOKOnly + vbExclamation, "الكبابي"
Exit Sub
End If
If Val(Trim$(A1)) < Val(Trim$(N1)) Then
MsgBox "يجب أن يكون عدد الأشياء أكبر من عدد العوامل", vbOKOnly + vbExclamation, "الكبابي"
Exit Sub
End If
'عدد الأشياء
A = Val(Trim$(A1))
'عدد العوامل
N = Val(Trim$(N1))
Command1.Enabled = False
List1.Clear
ReDim Preserve iFrom(1 To N) As Integer
ReDim Preserve iTo(1 To N) As Integer
For I = 1 To N
iFrom(I) = I
iTo(I) = A - (N - I)
Next
Do
If iFrom(N) < iTo(N) Then
zData = ""
For I = 1 To N
zData = zData & iFrom(I) & ","
Next
zData = Left$(zData, Len(zData) - 1)
List1.AddItem zData
iFrom(N) = iFrom(N) + 1
Else
zData = ""
For I = 1 To N
zData = zData & iFrom(I) & ","
Next
zData = Left$(zData, Len(zData) - 1)
List1.AddItem zData
For I = N To 1 Step -1
If iFrom(I) < iTo(I) Then
iFrom(I) = iFrom(I) + 1
For Z = I + 1 To N
iFrom(Z) = iFrom(Z - 1) + 1
Next
Exit For
Else
If I = 1 Then Exit Do
End If
Next
End If
DoEvents
Loop
MsgBox "تم الإنتهاء بنجاح", vbOKOnly + vbInformation, "VB_Coder"
Command1.Enabled = True
End Sub
