السلام عليكم ورحمة الله وبركاته
تم التعديل على الكود ليكون الناتج حضور1 وحضور2 لان المعادله تجمع الحضورين
وعند تغيير حضور بحضور1 بالمعادله ان شاء الله يتحقق المطلوب
وكل الاحترام والتقدير للرائع الاستاذ ياسر خليل على ابداعاته التى لا تنتهى
ونسأل الله ان لا تنتهى ويجزيه عنا كل الخير
CODE
Option Explicit
Sub Test()
Dim x As Variant
Dim m As Long
Dim i As Long
Dim c As Long
Application.ScreenUpdating = False
With ActiveSheet
m = .Cells(Rows.Count, 1).End(xlUp).Row
For i = m To 2 Step -1
If .Cells(i, 3).Value <> .Cells(i - 1, 3).Value Then
c = Application.CountIfs(.Range("C" & m & ":C" & i - 1), .Cells(i, 3).Value, .Range("A" & m & ":A" & i - 1), .Cells(i, 1).Value)
If c = 1 Then
.Cells(i + 1, 3).EntireRow.Insert
x = .Cells(i, 3).Value
.Cells(i + 1, 3).Value = DateSerial(Year(x), Month(x), Day(x))
.Cells(i + 1, 1).Value = .Cells(i, 1).Value
.Cells(i + 1, 2).Value = .Cells(i, 2).Value
.Cells(i + 1, 4).Value = .Cells(i, 4).Value
.Cells(i + 1, 5).Value = .Cells(i, 5).Value
.Cells(i, 7).Value = "حضور1"
.Cells(i + 1, 7).Value = "انصراف1"
.Cells(i + 1, 8).Value = "***"
ElseIf c = 2 Then
.Cells(i, 7).Value = "حضور1"
.Cells(i + 1, 7).Value = "انصراف1"
ElseIf c = 3 Then
.Cells(i + 1, 7).Value = "حضور1"
ElseIf c = 4 Then
.Cells(i, 7).Value = "حضور1"
.Cells(i + 1, 7).Value = "انصراف1"
.Cells(i + 2, 7).Value = "حضور2"
.Cells(i + 3, 7).Value = "انصراف2"
End If
End If
Next i
End With
Application.ScreenUpdating = True
End Sub