اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

فلترة و ترحيل أعمدة محددة إلى عدة أوراق


إذهب إلى أفضل إجابة Solved by طارق محمود,

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

مشكور أخي طارق على الرد والمساعدة القيمة جعلها الله في ميزان حسناتك

لدي بعض التساؤلات فقط:

AutoFilter Field:=71AutoFilter Field:=71

لماذا القيمة 71

كما أردت التعديل على الكود من خلال إضافة شرط ثاني للترحيل في الشيت: الموجهون وهو أن يكون التلميذ يحمل الصفة : م.ن الموجودة في العمود M إضافة إلى الشرط الموجود مسبقا

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

السلام عليكم

أخي العزيز

AutoFilter Field:=71

لماذا القيمة 71

بداية

انسخ المعادلة التالية

=COLUMN()
في الصف الأول كله من الخلية A1 إلي الخلية BS1 ستعطيك رقم العمود مثلا رقم العمودA هو =1 والعمودB هو =2 والعمودC هو =3 وهكذا العمودBS هو =71 نعود لسطر الكود
ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح"
هذا يعطي أمر بعمل فلتر (تصفية) للمجال A6:BSx حيث x هي آخر صف علي أن يكون الفلتر بناءا علي العمود رقم 71 والجزء الأخير من السطر بعد الفاصلة يدل علي الصفة المطلوب التصفية علي أساسها في هذا المثال (ناجح)
كما أردت التعديل على الكود من خلال إضافة شرط ثاني للترحيل في الشيت: الموجهون وهو أن يكون التلميذ يحمل الصفة : م.ن الموجودة في العمود M إضافة إلى الشرط الموجود مسبقا
يمكنك إضافة سطر كود آخر لتحديد صفة إضافية للتصفية أسفل السطر السابق ليكون الكود هكذا
Sub Tarheel_TAREQ()

..

..

..



'الموجهون

	ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح"

	ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=13, Criteria1:="م.ن"

..

..

End Sub

أو تفضل المرفق وبه التعديل

نموذج1.rar

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

هل ممكن أن أضيف Criteria بهذا الشكل لجميع الأوراق:

Criteria:1AMi حيث i يأخذ القيم من 1 إلى ثمانية أي بعدد الأقسام أو 1xxx أي Chaine de caractères تبدأ بـ 1

بإختصار هل يمكن أن يقارن البرنامج هذه القيمة مع العمود b وياخذ مثلا أقسام السنة الأولى فقط من 1AM1 إلى غاية 1AM8 مثلا

أي الناجحون للسنة الأولى (من 1AM1 إلى غاية 1AM8) والراسبون للسنة الأولى (من 1AM1 إلى غاية 1AM8) والموجهون للسنة الأولى (من 1AM1 إلى غاية 1AM8)

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

  • أفضل إجابة

السلام عليكم

اخي العزيز

في الفلتر (التصفية) ، عادة يمكنك إختيار التصنيف التالي لأحد الأعمدة

"إذا كانت الخلية تبدأ بـ كذا"

أو

"إذا كانت الخلية تحتوي علي كذا"

وكذلك الحال في هذا الكود المعتمد أساسا علي التصفية

فالكود يقوم بالتالي

1. إدراج السطر 6 أسفل العناوين التي بها دمج (Merg) يعيق التصفية

2. يصفي البيانات بناءا علي المعيار المطلوب

3. ينسخ البيانات المصفّاة إلي ورقتها

4. يلغي حدث التصفية

5. يحذف السطر 6 الذي أضافه أولا لكي يرجع الملف لما كان عليه

إذن يمكنك إحلال سطر (أو سطرين) الخاص بالمعايير أو إضافة

بدلا من


    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح"

    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=13, Criteria1:="م.ن"

ليكون

    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح"

    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=13, Criteria1:="م.ن"

    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=2, Criteria1:="=1*"

فيزيد علي الصفات السابقة معيار آخر وهو أن العمود رقم 2 (القسم) يبدأ برقم 1

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

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