السلام عليكمجرب هذا التعديل
Sub hh()
Dim m As Range
For Each m In Sheets("المشتريات").Range("F3:F1000")
If m.Text Like Sheets("فاتورة مشتريات").Range("j3").Text Then
MsgBox "رقم هذه الفاتورة موجود مسبقا", vbCritical, "خطأ"
Exit Sub
End If
Next
'----------------------------------------------------------------------------
Application.ScreenUpdating = False
LR = Sheets("فاتورة مشتريات").Cells(Rows.Count, "Q").End(xlUp).Row
LR1 = Sheets("المشتريات").Cells(Rows.Count, "E").End(xlUp).Offset(1, 0).Row
With Sheet6
.Range(Cells(2, 17), Cells(A_S, 35)).Copy
Sheets("المشتريات").Cells(LR1, 5).PasteSpecial xlPasteValues
End With
Application.ScreenUpdating = True: Application.CutCopyMode = False
MsgBox "تم ترحيل البيانات بنجاح", vbInformation, "ترحيل"
'--------------------------------------------------------------------------------------
For i = Sheets("المشتريات").Range("F" & Rows.Count).End(xlUp).Row To 1 Step -1
If WorksheetFunction.CountIf(Sheets("المشتريات").Range("F1:F" & i), Sheets("المشتريات").Range("F" & i).Value) > 1 Then
Sheets("المشتريات").Range("F" & i) = ""
End If
Next i
Sheets("فاتورة مشتريات").Select
End Sub
Public Function A_S() As Long
Dim X, LR, R
LR = Sheets("فاتورة مشتريات").Cells(Rows.Count, "Q").End(xlUp).Row
With Sheet6
With .Range(.Cells(2, 17).Address, .Cells(LR, 17).Address)
For R = 1 To .Rows.Count
If IsDate(.Cells(R, 1)) Then
X = .Cells(R, 1).Row
End If
Next
End With
End With
A_S = X
End Function
تم تعديل هذه المشاركة بواسطة عباد: 01 ديسمبر 2012 - 03:44 ص