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

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

قام بنشر

مطلوب كود لالغاء فلترة البيانات عندما  تكون الصفحه التي بها البيانات غير نشطه (اي مفتوح صفحه غيرها في نفس الشيت )

وكذلك عندما نخرج من الملف  ونفتحه مره اخري

قام بنشر

جرب هذا الكود

Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.ScreenUpdating = False
    my_sheet = ActiveSheet.Name
    Application.Undo
    With ActiveSheet
    '    بما تراه مناسبا  Range("A2") استبدل هنا
             If .AutoFilterMode = True Then .Range("A2").AutoFilter
    End With
    Sheets(my_sheet).Select
Application.ScreenUpdating = True
End Sub

 

قام بنشر

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

استاذي العزيز سليم حاصبيا قمت بتجربة الكود ولكنه لايعمل الرجاء تطبيقه علي الملف المرفق 

بحيث انه عندما ننتقل الي صفحه اخري او نغلق الملف  يتم الغاء الفلتره بصوره اتوماتيكيه

ولكم جزيل الشكر

 

الموردن.zip

قام بنشر
20 ساعات مضت, سليم حاصبيا said:

جرب هذا الكود


Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.ScreenUpdating = False
    my_sheet = ActiveSheet.Name
    Application.Undo
    With ActiveSheet
    '    بما تراه مناسبا  Range("A2") استبدل هنا
             If .AutoFilterMode = True Then .Range("A2").AutoFilter
    End With
    Sheets(my_sheet).Select
Application.ScreenUpdating = True
End Sub

 

استبدل الرقم 2 بالرقم 4

ليصبح الكود هكذا

  If .AutoFilterMode = True Then .Range("A4").AutoFilter

 

قام بنشر

استاذي العزيز سليم حاصبيا بعد التحيه 

في البدايه اشكر جهدك واهتمامك بالموضوع 

1- اخي العزيز  عند التحويل بين الشيتات يتم  الغاء الفلتره  تماما والمراد ان يتم الخروج منها وليس الغاؤها

2-  عند اغلاق الشيت وفتحه نجد ان الفلتلره كما هي  المراد (ان يعمل الكود عند التحول بين الصفحات  وكذلك عند الخروج من الشيت)

3- هل  من الممكن  ان يتسع نطاق الكود ليشمل جميع الاعمده في مدي الجدول وليس a4  فقط 

قام بنشر
6 ساعات مضت, طاهر محمد said:

استاذي العزيز سليم حاصبيا بعد التحيه 

في البدايه اشكر جهدك واهتمامك بالموضوع 

1- اخي العزيز  عند التحويل بين الشيتات يتم  الغاء الفلتره  تماما والمراد ان يتم الخروج منها وليس الغاؤها

2-  عند اغلاق الشيت وفتحه نجد ان الفلتلره كما هي  المراد (ان يعمل الكود عند التحول بين الصفحات  وكذلك عند الخروج من الشيت)

3- هل  من الممكن  ان يتسع نطاق الكود ليشمل جميع الاعمده في مدي الجدول وليس a4  فقط 

لم افهم ماذا تعني كلمة (الخروج منها)و ماذا (تعني الغاؤها)

بالنسبة للنطاق تحدد اي خلية في النطاق و تتم الفلترة على كل الاعمدة (ضمن النطاق)

اذا وجد عامود فارغ فان اكسل يحدد النطاق كل شيء قبل العامود الفارغ و نفس الشي بالنسبة للصف الفارغ

لتعرف كيفية فهم اكسل لنطاق الفلترة (حدد اي خلية )و اضغط Ctrl+A 

قام بنشر

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

1- اقصد بالخروج من الفلتره هو اننا علي سبيل المثال من العملاء او الموردين نختار محمد او احمد .......وهكذا  وعندما نريد ان نخرج من حالة الفلتره نختار select all

فيظهر الجدول كما هو بدون فلتره

اما الكود المرفق  فانه يحذف اسهم الفلتره من علي جميع الاعمده

2- اقصد بتوسيع نطاق الكود هو اننا ممكن يتم الفلتره عن طريق التاريخ او عن  طريق اسم العميل وهكذا

والكود لايعمل الا اذا تمت الفلتره a4 فقط  المطلوب ان يعمل ايضا مع b4 . c4 . d4 .........وهكذا الي اخر نطاق في الجدول

قام بنشر
2 ساعات مضت, طاهر محمد said:

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

1- اقصد بالخروج من الفلتره هو اننا علي سبيل المثال من العملاء او الموردين نختار محمد او احمد .......وهكذا  وعندما نريد ان نخرج من حالة الفلتره نختار select all

فيظهر الجدول كما هو بدون فلتره

اما الكود المرفق  فانه يحذف اسهم الفلتره من علي جميع الاعمده

2- اقصد بتوسيع نطاق الكود هو اننا ممكن يتم الفلتره عن طريق التاريخ او عن  طريق اسم العميل وهكذا

والكود لايعمل الا اذا تمت الفلتره a4 فقط  المطلوب ان يعمل ايضا مع b4 . c4 . d4 .........وهكذا الي اخر نطاق في الجدول

بدل الى هذا الكود

Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.ScreenUpdating = False
    my_sheet = ActiveSheet.Name
    Application.Undo
    With ActiveSheet
          If .AutoFilterMode = True Then .ShowAllData
    End With
    Sheets(my_sheet).Select
Application.ScreenUpdating = True
End Sub

 

قام بنشر
في 11/15/2016 at 08:51, طاهر محمد said:

استاذي العزيز سليم حاصبيا بعد التحيه 

قمت بتجربة الكود الجديد علي الملف المرفق اكثر من مره ولكنه لايعمل

فالرجاء تطبيقه من طرفكم علي الملف المرفق

ولكم جزيل الشكر

 

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

قام بنشر

استاذي العزيزسليم حاصبيا  بعد التحيه 

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

ولكنه لايعمل عند غلق الملف  مع وجود الفلتره 

حيث اننا نغلق الملف ثم نفتحه ونجد الفلتره موجوده 

المراد ان يعمل الكود ايضا عند غلق الملف

ولكم جزيل الشكر

 

 

 

قام بنشر
في 11/17/2016 at 17:15, سليم حاصبيا said:

الكود المطلوب


Private Sub Workbook_BeforeClose(Cancel As Boolean)
  For Each sh In ThisWorkbook.Worksheets
        If sh.AutoFilterMode = False Then
             sh.range("a4").AutoFilter
         Else
                sh.ShowAllData
         End If
     Next
End Sub

 

هل من الممكن  عدم تحديد a4 بل جعله متاح مع جميع الاعمده التي في نطاق الفلتره

والرجاء التطبيق علي الملف المرفق

ولكم جزيا الشكر

 

قام بنشر
2 ساعات مضت, طاهر محمد said:

هل من الممكن  عدم تحديد a4 بل جعله متاح مع جميع الاعمده التي في نطاق الفلتره

والرجاء التطبيق علي الملف المرفق

ولكم جزيا الشكر

 

في عملية الفلترة لا بد من تحديد جدول لتقوم الفلترة على اساسه

انا اخذت الخلية A4 , يمكنك انت ان تختار ما تشاء شرط ان تكون الخلية داخل الجدول

sh.range("a4").AutoFilter

لا يعمل اكود بدون اي خلية مثلاً هكذا

sh.AutoFilter

جرب هذا اذا كان الجدول يضم الاعمدة من A  الى F

  sh.range("a4:f4").AutoFilter

 

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