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

خطأ في كود ترحيل الى صفحات بناء على اسم خليه (عنوان معدل )


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

ارجو المساعده

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

ولكن يحدث خطأ

انا اريد الترحيل بناء على الخلايا من b3 الى e3

واسم الشيت الجديد سيكون بناء على الخليه f3

نطاق البحث يكون من a5 الى n15000

ويتم نسخ البيانات من a1 الى n150002

ارجو شرح الخطأ الذى وقعت فيه اثناء تنفيذ الكود

بيانات.rar

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

الاخ طارق

ارجو العزر لى مره اخرى

واسف على اهدار وقتك

فقد ارفقت اليك الشيت الخطأ واليك الشيت الصحيح

ارجو شرح الاخطاء بعد اذنك

بيانات-1.rar

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

السلام عليكم

أخي العزيز

أنت أدرجت صفوف وأعمدة

وهذا يحتاج وقت لإصلاحه

فالكود مثل الثوب التفصيل الذي يتم تفصيله علي هذا الشكل وهذه المشاكل والطلبات

مثلا لكي تتفهم الوضع ، كان السطر الثاني من الكود

fr_D = ">=" & Format([C3], "000"): to_D = "<=" & Format([D3], "000")
لابد أن يصبح
fr_D = ">=" & Format([D3], "000"): to_D = "<=" & Format([E3], "000")

لأنك بإدراجك للعمود الأول A

تم ترحيل الخلايا التي يقرأ منها تاريخ البداية والنهاية

يعني المتغير fr_D كان يقرأ تاريخ البداية من الخلية C3 ، أصبح D3

وهكذا مع كامل الكود

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

السلام عليكم

أخي العزيز

إحذف (-2) من السطرالأخير في الحلقة التكرارية With

السطر

LR = [A50000].End(xlUp).Row - 2 ' After Filter

سيصبح

LR = [A50000].End(xlUp).Row ' After Filter

لتصبح الحلقة هكذا



With ActiveSheet.Range("A4:N" & LR)

        .AutoFilter Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D

        .AutoFilter Field:=2, Criteria1:=nm

        .AutoFilter Field:=3, Criteria1:=nm1

        LR = [A50000].End(xlUp).Row ' After Filter

    End With

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

الاخ طارق بارك الله فيك

ولكن ممكن تشرح لى

With ActiveSheet.Range("A4:N" & LR)

.AutoFilter Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D

.AutoFilter Field:=2, Criteria1:=nm

.AutoFilter Field:=3, Criteria1:=nm1

LR = [A50000].End(xlUp).Row ' After Filter

End With

انا اريد ان اعرف معنى

AutoFilter Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D

وماهى هى وظيفته

وايضا

.AutoFilter Field:=2, Criteria1:=nm

وايضا

LR = [A50000].End(xlUp).Row ' After Filter

بارك الله فيك

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

لسلام عليكم

أولا لنفهم طريقة الحل ،

كما لو أنك من الإكسل > ظللت المجال A4:N x (× تم تعريفها من قبل علي أنها السطر قبل آخر سطر بسطرين)

لاحظ أن عدد الأعمدة A:N يساوي 14

ثم من Data ثم Filter ثم تختار الخصائص التي تطلب الفلتر علي أساسها

Field:= 2 , Criteria1:=nm

تعني أن العمود الثاني من مجال التصفية = قيمة المتغير nm الذي سبق تعريفه من قبل (في الكود)

Field:= 3 , Criteria1:=nm1

تعني أيضا أن العمود الثالث من مجال التصفية = قيمة المتغير nm1 الذي سبق تعريفه من قبل (في الكود)

وكما تعلم أن التصفية في الإكسل (قبل ماتذهب للأكواد) تمكنك من التصفية بأكثر من خاصية واحدة للعمود الواحد

لذلك فالسطر :

Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D

يعني أن العمود الرابع عشر من مجال التصفية تنحصر قيمته بين المتغيرين fr_D ، to_D وقد سبق تعريفهما من قبل (في أول الكود)

تذكر أنه إذا كانت الخلية D3 بها مثلا التاريخ 05/07/2011 فإن

fr_D = ">=" & Format([D3], "000")

تعني أن المتغير fr_D ستصبح قيمته " >= 05/07/2011"

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

الاخ طارق بارك الله فيك

فالحمد لله بفضلك استطعت تقريبا فهم الكثير من محتويات الكود

ولكن ينقصنى فهم بعض الاشياء

ارجو من ان تشرحها لى حتى استطيع فهمها

بارك الله فيك

For i = 1 To Sheets.Count

If Sheets(i).Name = N_Sht Then

Reply = MsgBox("__" & N_Sht & " ___" & Chr(10) & " ___", vbYesNo)

10 Sheets(mySht).Select

LR = [A50000].End(xlUp).Row - 2

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

السلام عليكم

معنى السطر

LR = [A50000].End(xlUp).Row - 2

أنك تجعل مؤشر الإكسل يذهب للخلية A50000 ثم يقز لأعلي حتي يجد بيانات End(xlUp فيأتي برقم الصف Row ثم يطرح 2

يعني لو أنك لن تزيد كما أخبرتني عن الصف 1500 فإن السطر 50000 أكيد سيكون فارغا

ممكن تنفذ هذه الخطوة يدويا بأن تذهب للخلية A50000 ثم تضغط Ctrl-Up ، السهم لأعلي يعني Up

ثم عملية طرح 2 لكي لا يدخل الصفين الأخيرين في عملية التصفية

وبالتالي بعد التصفية يتم نسخ الجدول المصفي + الصفين الآخيريرن

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

بارك الله فيك أخ طارق .. دائما مبدع (تعلمنا منك الكثير ويبدو أننا لن نتوقف عن التعلم منك فمعينك لا ينضب)

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

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.

×
×
  • اضف...

Important Information