كود لنسخ الأصناف إلى صفحاتها

السلام عليكم و رحمة الله و بركاته

فكرة الكود تقوم على التالي:

1.     يوجد لدينا حركات أصناف في الصفحة الرئيسية و هي صفحة الحركات و اسمهاTotal و اسماء الاصناف موجودة في العمود A .

2.     و يوجد عدد من الاصناف من ضمنها صنف اسمهOrange و له أيضاً صفحة اسمها Orange .

3.     و صنف آخر اسمهApple  و له أيضاً صفحة بنفس الإسم

4.     و نريد كود يقوم بعملcut  لاسم الصنف و من ثم Paste  في الصفحة المرتبطة بإسمه .

و لعمل ذلك قدمت الكود التالي:

	Sub Excel4Us()

	Dim c As Range, LR As Integer, Rng As Range
	Application.EnableEvents = False
	LR = Sheets("Total").Range("a" & Rows.Count).End(xlUp).Row
	Set Rng = Sheets("Total").Range("a2:a" & LR)
	For Each c In Rng
	    Select Case c.Value
	        Case Is = "Apple"
            c.EntireRow.Cut Sheets("apple").Range("a" & Sheets("apple").Range("a" & Rows.Count).End(xlUp).Row + 1)
	        Case Is = "Orange"
            c.EntireRow.Cut Sheets("Orange").Range("a" & Sheets("Orange").Range("a" & Rows.Count).End(xlUp).Row + 1)
	    End Select
	Next c
	Rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
	Application.EnableEvents = True
	End Sub

__________________

و لكن عند تطبيقه

سنلاحظ البطئ في حركات القص و اللصق

و لذلك قمت بعمل كود اخر رديف له

و هو سريع بإستخدام خاصية الفلترة

و كان هذا هو الكود

	Sub Excel4Us()
	Dim c As Range, LR As Integer, Rng As Range, Product()
	Application.EnableEvents = False
	LR = Sheets("Total").Range("a" & Rows.Count).End(xlUp).Row
	Set Rng = Sheets("Total").Range("a2:d" & LR)
	Product = Array("Apple", "Orange")
	Range("A1:D1").AutoFilter
	With Rng
	    For i = LBound(Product) To UBound(Product)

 

اترك تعليقك

الاسم
:

البريد الإلكتروني
:


رقم الهاتف
:


التعليق
:

التعليقات