السلام عليكم
جرب الكود التالي عله يفي بالغرض ..
في ورقة العمل المسماة recycle اجعل عنوان أول فاتورة موجودة في الصف رقم 3
عند التعامل مع ورقة العمل invoice تأكد أن كلمة السر مفعلة .. ولكن قبل ذلك يجب أن تقوم بتغيير خصائص خلايا الإدخال (التاريخ وعمود الكميات) ، وذلك عن طريق تحديد الخلايا ثم كليك يمين ثم Format Cells ثم التبويب Protection وأزل علامة الصح بجانب الخيار Locked .. بحيث تتمكن من عملية الإدخال والورقة محمية
الآن بعد ضبط أوراق العمل جرب الكود التالي
Sub Test()
Dim ws As Worksheet
Dim sh As Worksheet
Dim rg As Range
Application.ScreenUpdating = False
Set ws = Sheets("invoice")
Set sh = Sheets("recycle")
Set rg = ws.Range("A5:F26").SpecialCells(xlCellTypeVisible)
ws.Protect Password:="11", AllowFormattingRows:=True, UserInterfaceOnly:=True, Contents:=True, Scenarios:=True, DrawingObjects:=False
If IsEmpty(ws.Range("D7")) Or Application.WorksheetFunction.CountA(ws.Range("D10:D25").SpecialCells(xlCellTypeVisible)) = 0 Then MsgBox "No Data", vbCritical: Exit Sub
sh.Rows(3).Resize(rg.Rows.Count + 3).Insert Shift:=xlDown
rg.Copy: sh.Range("A3").PasteSpecial xlPasteValues
rg.Copy: sh.Range("A3").PasteSpecial xlPasteFormats
sh.Range("A7").CurrentRegion.Interior.Color = xlNone
ws.Range("D7").ClearContents
ws.Range("D10:D25").SpecialCells(xlCellTypeVisible).ClearContents
ws.Range("D5").Value = ws.Range("D5").Value + 1
rg.EntireRow.Hidden = False
Application.Goto ws.Range("A26")
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox "Done...", 64
End Sub
إذا أدى الكود الغرض لا تنسى الإعجاب وتحديد أفضل إجابة ليظهر الموضوع منتهي
تقبل تحياتي