اذهب الي المحتوي
أوفيسنا

كود الترحيل أصبح ثقيلاً وبطيئاً


إذهب إلى أفضل إجابة Solved by ياسر أحمد الشيخ,

الردود الموصى بها

الأخوة الأفاضل كود الترحيل الموجود في شيت المشتريات أصبح ثقيلاً كلما زادت الصفوف المراد ترحيلها

 

والمطلوب تخفيف وتسريع الكود مهما كانت كمية الصفوف المرحلة

 

2015.rar

رابط هذا التعليق
شارك

انظر أخى الكود بعد التعديل

Sub حسب_الاختيار()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim c As Range
Sheet2.Range("b5:d100") = Empty
For Each c In Sheet1.Range("chose")
If c.Value = "نعم" Then
' Z = Z + 1
lstrow = Sheet2.Range("b20000").End(xlUp).Row + 1
Sheet2.Range(Sheet2.Cells(lstrow, "b"), Sheet2.Cells(lstrow, "g")) = _
Sheet1.Range(Sheet1.Cells(c.Row, "b"), Sheet1.Cells(c.Row, "g")).Value
'Sheet2.Cells(lstrow, "a") = Z:
End If
Next c
MsgBox ("تم ترحيل الصفوف المحددة بنجاح"), vbDefaultButton1, " تحياتي أ / محـمـود جـمـعـه "
Sheets("المبيعات (1)").Select
Range("c2").Select
Application.ScreenUpdating = True
Application.Calculation = xlCalculationSemiautomatic

End Sub


رابط هذا التعليق
شارك

الأخ الكريم ياسر هذا حل رائع ولكن إتضح لي مشكلة أخري تبدو صغيرة عند حضرتك ولكنها كبيرة عندي ولا أستطيع أن أجد لها حل  وهي

أنه عند  ترحيل الصفوف إلي شيت 2 " المبيعات " يتم ترتيب الأرقام المرحلة من الأصغر إلي الأكبر وبالتالي في حالة ترحيل عدد من الصفوف وليكن الأرقام 2 ، 3 ، 4 ، 5 مرة واحدة ثم نقوم بترحيل رقم 1 بعد ذلك نجده يأخذ صف أعلي الرقم 2 وبالتالي يأخذ مكان الرقم 2 ببياناته والرقم 2 يأخذ بيانات الرقم 3 وهكذا أي أن الرقم المرحل جديداً يأخذ خانة الرقم القديم في حالة أنه أصغر منه

والمطلوب

الرقم الذي يتم ترحيله من جديد سواء كان رقم صغير أو كبير لايتم ترتيبه وإنما يأخذ أول صف ليس به بيانات بمعني لو عندي أرقام مرحلة من 5 إلي 100 ثم قمت بترحيل رقم 1 يأخذ أول صف خالي بعد100

تم تعديل بواسطه Mahmoud330
رابط هذا التعليق
شارك

الأخوة الأفاضل أعضاء هذا المنتدي إتضح لي مشكلة أخري ولا أستطيع أن أجد لها حل  وهي

أنه عند  ترحيل الصفوف إلي شيت 2 " المبيعات " يتم ترتيب الأرقام المرحلة من الأصغر إلي الأكبر وبالتالي في حالة ترحيل عدد من الصفوف وليكن الأرقام 2 ، 3 ، 4 ، 5 مرة واحدة ثم نقوم بترحيل رقم 1 بعد ذلك نجده يأخذ صف أعلي الرقم 2 وبالتالي يأخذ مكان الرقم 2 ببياناته والرقم 2 يأخذ بيانات الرقم 3 وهكذا أي أن الرقم المرحل جديداً يأخذ خانة الرقم القديم في حالة أنه أصغر منه

والمطلوب

الرقم الذي يتم ترحيله من جديد سواء كان رقم صغير أو كبير لايتم ترتيبه وإنما يأخذ أول صف ليس به بيانات بمعني لو عندي أرقام مرحلة من 5 إلي 100 ثم قمت بترحيل رقم 1 يأخذ أول صف خالي بعد100

 

2015.rar

تم تعديل بواسطه Mahmoud330
رابط هذا التعليق
شارك

آسف على التأخير أخى ، ولكن كان عندى ضغط عمل

تفضل أخى الكود استبدله بكود حسب الاختيار

Sub حسب_الاختيار()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim c As Range

For Each c In Sheet1.Range("chose")
If c.Value = "نعم" Then
' Z = Z + 1
lstrow = Sheet2.Range("b20000").End(xlUp).Row + 1
Sheet2.Range(Sheet2.Cells(lstrow, "b"), Sheet2.Cells(lstrow, "g")) = _
Sheet1.Range(Sheet1.Cells(c.Row, "b"), Sheet1.Cells(c.Row, "g")).Value
'Sheet2.Cells(lstrow, "a") = Z:
End If
Next c
MsgBox ("تم ترحيل الصفوف المحددة بنجاح"), vbDefaultButton1, " تحياتي أ / محـمـود جـمـعـه "
Sheets("المبيعات (1)").Select
Range("c2").Select
Application.ScreenUpdating = True
Application.Calculation = xlCalculationSemiautomatic

End Sub

أرجو أن يكون هذا طلبك

رابط هذا التعليق
شارك

الرجاء التعديل علي الكود بحيث الرقم الذي يتم ترحيله من جديد سواء كان رقم صغير أو كبير لايتم ترتيبه وإنما يأخذ أول صف ليس به بيانات بمعني لو عندي أرقام مرحلة من 5 إلي 10 ثم قمت بترحيل رقم 1 يأخذ أول صف خالي بعد10 صفوف  وذلك دون تكرار البيانات التي تم ترحيلها سابقاً

تم تعديل بواسطه Mahmoud330
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information