السلام عليكم
جرب هذا التعديل
Sub saad()
Application.ScreenUpdating = False
Sheets("Entry").Select
al = Sheets("Database").[e10000].End(xlUp).Row
If [d1] = "" Or [d2] = "" Or [d3] = "" Then
MsgBox "أكمل البيانات أولا"
Exit Sub
ElseIf Not [c4].Value = [d4].Value Then
MsgBox "تأكد من ادخال القيد مع توازن الطرفين", vbExclamation, "ادخال خاطئ"
Exit Sub
ElseIf Sheets("Database").Range("e" & al).Value = [d2].Value Then
MsgBox "تأكد من عدم تكرار القيد", vbExclamation, "ادخال خاطئ"
Exit Sub
End If
If MsgBox("هل تريد ترحيل البيانات الحالية", vbInformation + vbOKCancel, "ترحيل") = vbCancel Then Exit Sub
With Sheets("Entry")
R_C = .Cells(Rows.Count, "C").End(xlUp).Row: R_D = .Cells(Rows.Count, "D").End(xlUp).Row
R_E = .Cells(Rows.Count, "E").End(xlUp).Row: R_F = .Cells(Rows.Count, "F").End(xlUp).Row
R_Row = Application.WorksheetFunction.Max(R_C, R_D, R_E, R_F)
End With
For R = 7 To R_Row
With Sheets("Database")
Last = .Cells(Rows.Count, "D").End(xlUp).Row + 1
Sheets("Entry").Range("C" & R).Resize(1, 4).Copy
.Range("G" & Last).PasteSpecial xlPasteValues: .Range("D" & Last) = Sheets("Entry").Range("D1").Value
.Range("E" & Last) = Sheets("Entry").Range("D2").Value: .Range("F" & Last) = Sheets("Entry").Range("D3").Value
Last = Last + 1
End With
Next
With Sheets("Database")
Last1 = .Cells(Rows.Count, "D").End(xlUp).Row
.Range("D" & Last1 & ":J" & Last1).Borders.Value = 1
.Range("D" & Last1 & ":J" & Last1).Borders(xlEdgeTop).LineStyle = xlNone
.Range("D" & Last1 & ":J" & Last1).Borders(xlEdgeBottom).Weight = xlThick
.Range("D" & Last1 & ":J" & Last1).Borders(xlEdgeBottom).ColorIndex = 3
End With
With Sheets("Entry")
MsgBox "تم ترحيل بيانات السند رقم " & .Range("D2") & " بنجاح", vbInformation, "ترحيل"
.Range("C7:F40") = ""
.Range("D1:D3") = ""
End With
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub