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

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

قام بنشر

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

الرجاء مساعدتي في ترحيل أعمدة محددة من الورقة الأولى إلى الورقتين الثانية والثالثة

وشكرا مسبقا

نموذج.rar

قام بنشر

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

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

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