Sub insert_rows()
'هذه الجزئية تقوم بالإعلان بالمتغيرات المستعملة في الكود
Dim i%, k%
'هذا الأمر خاص بتوقيف تحيين العمليات
Application.ScreenUpdating = False
' هذه الجزئية من الكود تقوم بحذف كل الصفوف التي تكون فيها_
'خلايا العمود الأول فارغة بداية من آخر خلية في العمود إلى غاية الصف الأول
'------------------------------------
i = Cells(Rows.Count, 1).End(3).Row
Do Until i = 1
If Range("a" & i) = "" Then
Rows(i).Delete
End If
i = i - 1
Loop
'------------------------------------
' هذه الجزئية من الكود تقوم بإدراج صف بين صفي كل خلية من العمود الأول والخلية_
'التي قبلها إذا كانت قيمهما مختلفة بداية من آخر خلية في العمود إلى غاية الصف الثاني
'------------------------------------
k = Cells(Rows.Count, 1).End(3).Row
Do Until k = 2
If Range("a" & k) <> Range("a" & k - 1) Then
Rows(k).Insert
End If
k = k - 1
Loop
'------------------------------------
'هذا الأمر خاص بمباشرة تحيين العمليات
Application.ScreenUpdating = True
End Sub
والصبر جميل