وعليكم السلام ورحمة الله وبركاته ..
هذه فكرة بسيطة للورقة الثانية في الخلية D4 ( المطلب الأول ) ، جربه :-
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Dim cell As Range, n As Long
Range("B6:B35, D6:D35").ClearContents
If IsDate(Target.Value) And Target.Value <> "" Then
For Each cell In Sheets("بيانات العاملين").Range("B2:B" & Sheets("بيانات العاملين").Cells(Rows.Count, "B").End(xlUp).Row)
If cell.Value = Target.Value Then
n = n + 1
Cells(6 + ((n - 1) Mod 30), 2 + ((n - 1) \ 30) * 2).Value = cell.Offset(0, 1).Value
If n = 60 Then Exit For
End If
Next cell
End If
End If
End Sub
المطلب الثاني في الورقة الثالثة ، جرب استعمال الفكرة التالية بحيث لتحديد العدد جعلت الخلية G4 لتحديد العدد بدلاً من 5 والتقيد به . وبالتالي اذا لم تحدد قيمة في G4 سيكون الافتراضي = 5 أسماء ، والكود كالتالي في الورقة الثالثة :-
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F4:G4")) Is Nothing Then
Dim cell As Range, n As Long, limit As Long
Dim status As String
Range("C7:C" & Rows.Count).ClearContents
status = Range("F4").Value
If status = "ناجح" Or status = "راسب" Then
limit = IIf(Val(Range("G4").Value) <= 0, 5, Val(Range("G4").Value))
For Each cell In Sheets("بيانات العاملين").Range("E2:E" & Sheets("بيانات العاملين").Cells(Rows.Count, "E").End(xlUp).Row)
If cell.Value = status Then
n = n + 1
Cells(6 + n, "C").Value = Sheets("بيانات العاملين").Cells(cell.Row, "C").Value
If n = limit Then Exit For
End If
Next cell
End If
End If
End Sub
لاحظ أنني قمت بإضافة احتمال آخر = راسب من باب التوسعة في خيارات البحث بالنتيجة
اللجنة.xlsm