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

إخفاء الصفوف اذ كانت فارغة


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

السلا م عليكم

و سمحتو اريد اخفاء الصفوف اذ كانت فارغة او التي  يوجد بها صفرمن النطاق c13 الى C65512


وجدت هذا الكود لكنه بطئ جداً يستغرق وقت كبير لاخفاء الصفوف واحيناً يقف الاكسل عن الاستجابة

Sub ÇÎÝÇÁ()
Application.ScreenUpdating = False
 For Each cl In Range("c13:cC65512")
With cl
If .Value = 0 Then .Rows.EntireRow.Hidden = True Else .Rows.EntireRow.Hidden = False
End With
Next
      
Application.ScreenUpdating = True
End Sub

 

الخزينة.rar

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

أخى محمد

جرب الكود التالى

Sub ragab()
Dim rng As Range
Dim rng1 As Range
Dim cl As Range
On Error Resume Next
Application.ScreenUpdating = False
Set rng = Range("c13:c65512").SpecialCells(xlCellTypeBlanks)
rng.EntireRow.Hidden = True

Set rng1 = Range("c13:c65512").SpecialCells(xlCellTypeVisible)
For Each cl In rng1
If cl.Value = 0 Then
cl.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub

 

الخزينة.rar

تم تعديل بواسطه رجب جاويش
  • Like 1
رابط هذا التعليق
شارك

شكر خاص الإخ رجب جاويش

عودة أكثر من رائعة..

أخي رجب ممكن كود يقوم بإخفاء الإعمدة عندما تكون خلية قي الصف تساوي صفر

مثلا إذا كانت الخلية A20 =0 يقوم بأخفاء العمود    A  وكذلك بقية الاعمدة الى مثلا Z  حسب قيمة الخلية 20 فيه

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

أخي الكريم مهند

لما لا تطرح موضوع جديد لتجد استجابة أكثر مع التوضيح التام لطلبك مع إرفاق لشكل النتائج المتوقعة إذا تطلب الأمر

 

أخي الحبيب رجب جاويش

حاول أن تبتعد قدر الإمكان عن الحلقات التكرارية لما لها من أثر في بطء عمل الكود خصوصاً إذا كانت البيانات كبيرة

ما رأيك بفكر جديد وهو استخدام خاصية الفلترة ..جرب الكود التالي

Sub HideRowsUsingFilterMethod()
    Dim Rng As Range
    
    Application.ScreenUpdating = False
        On Error Resume Next
        With ActiveSheet
            .AutoFilterMode = False
            .Range("C12:C65512").AutoFilter Field:=1, Criteria1:="=0", Operator:=xlOr, Criteria2:=""
            Set Rng = .Range("C13:C65512").SpecialCells(xlCellTypeVisible)
            .AutoFilterMode = False
            Rng.EntireRow.Hidden = True
        End With
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

 

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

أخى الحبيب ياسر

معك حق طبعا فى ان الحلقات التكرارية تؤدى الى بطء الكود

لذا قمت بحذف الصفوف الفارغة اولا بعيدا عن الحلقات التكرارية

وتبقت الخلايا المحتوية على الصفر فقط وهى عددها أقل للحلقات التكرارية

أجمل تحياتى لفكرتك الجميلة باستخدام الفلترة

 

 

أخى مهند

برجاء فتح موضوع جديد كما أخبرك أخى ياسر

 

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

13 ساعات مضت, رجب جاويش said:

أخى محمد

جرب الكود التالى


Sub ragab()
Dim rng As Range
Dim rng1 As Range
Dim cl As Range
On Error Resume Next
Application.ScreenUpdating = False
Set rng = Range("c13:c65512").SpecialCells(xlCellTypeBlanks)
rng.EntireRow.Hidden = True

Set rng1 = Range("c13:c65512").SpecialCells(xlCellTypeVisible)
For Each cl In rng1
If cl.Value = 0 Then
cl.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub

 

الخزينة.rar

شكراً استاذ رجب ...عفواً الكود يعمل بشكل سريع

12 ساعات مضت, ياسر خليل أبو البراء said:

أخي الكريم مهند

لما لا تطرح موضوع جديد لتجد استجابة أكثر مع التوضيح التام لطلبك مع إرفاق لشكل النتائج المتوقعة إذا تطلب الأمر

 

أخي الحبيب رجب جاويش

حاول أن تبتعد قدر الإمكان عن الحلقات التكرارية لما لها من أثر في بطء عمل الكود خصوصاً إذا كانت البيانات كبيرة

ما رأيك بفكر جديد وهو استخدام خاصية الفلترة ..جرب الكود التالي


Sub HideRowsUsingFilterMethod()
    Dim Rng As Range
    
    Application.ScreenUpdating = False
        On Error Resume Next
        With ActiveSheet
            .AutoFilterMode = False
            .Range("C12:C65512").AutoFilter Field:=1, Criteria1:="=0", Operator:=xlOr, Criteria2:=""
            Set Rng = .Range("C13:C65512").SpecialCells(xlCellTypeVisible)
            .AutoFilterMode = False
            Rng.EntireRow.Hidden = True
        End With
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

 

استاذ ياسر بارك الله فيك ... اعتق هنا مشكلة عند الظغط مثلاً بالخطاء على مفتاح الاخفاء مره اخرى والصفوف مختفية يحصل ايقاف وثقل للاكسل بشك كبير ... هل هذا لانه 2003

ام هناك مشكلة معينة

66.png

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

أخي الكريم محمد الخازمي

لا أدري ما السبب في المشكلة التي تظهر لديك

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

عموماً هناك كود الأخ الغالي رجب ويعمل بشكل سريع أيضاً ...

تقبل تحياتي

 

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

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