مختار البركاني قام بنشر ديسمبر 26, 2015 قام بنشر ديسمبر 26, 2015 (معدل) السلام عليكم ورحمة الله وبركاته اخواني الاعزاء احتاج لكود طباعة الملف المرفق بحيث يتم استبعاد الاسطر التي تحتوي على صفر في خليتين في عمودين بنفس السطر مثال : اذا الخلية a15 قيمتها صفر والخلية e15 قيمتها صفر يتم استبعاد السطر اما اذا قيمة الخلية في a15 تساوي صفر وقيمة الخليه e15 اكبر من الصفر فلا يتم استبعاده مرفق ملف للتوضيح مع خالص تحياتي code.rar تم تعديل ديسمبر 26, 2015 بواسطه مختار البركاني
ياسر خليل أبو البراء قام بنشر ديسمبر 26, 2015 قام بنشر ديسمبر 26, 2015 أخي الكريم مختار جرب الكود التالي عله يفي بالغرض Sub PrintPage() Dim I As Integer Application.ScreenUpdating = 0 For I = 8 To Cells(Rows.Count, 1).End(3).Row If Cells(I, 1) = 0 And Cells(I, 5) = 0 Then Cells(I, 1).EntireRow.Hidden = True Next I 'للطباعة [PrintOut] بكلمة [PrintPreview] استبدل كلمة ActiveSheet.PrintPreview Cells.EntireRow.Hidden = False Application.ScreenUpdating = 1 End Sub
ياسر خليل أبو البراء قام بنشر ديسمبر 26, 2015 قام بنشر ديسمبر 26, 2015 وهذا كود آخر أسرع من الأول Sub PrintPage() Dim MyRange As Range, Cel As Range, Rng As Range Application.ScreenUpdating = 0 Set MyRange = Range(Cells(8, 1), Cells(Cells(Rows.Count, 1).End(3).Row, 1)) For Each Cel In MyRange If Cel.Value = 0 And Cel.Offset(, 4).Value = 0 Then If Not Cel Is Nothing Then If Rng Is Nothing Then Set Rng = Cel Else Set Rng = Union(Rng, Cel) End If Next Cel If Not Rng Is Nothing Then Rng.EntireRow.Hidden = True 'للطباعة [PrintOut] بكلمة [PrintPreview] استبدل كلمة ActiveSheet.PrintPreview Cells.EntireRow.Hidden = False Application.ScreenUpdating = 1 End Sub
مختار البركاني قام بنشر ديسمبر 27, 2015 الكاتب قام بنشر ديسمبر 27, 2015 12 ساعات مضت, مختار البركاني said: الخلية بارك الله فيك استاذ ياسر خليل أبو البراء ووفقك وجعله في ميزان حسناتك جاري التطبيق
مختار البركاني قام بنشر ديسمبر 27, 2015 الكاتب قام بنشر ديسمبر 27, 2015 السلام عليكم ورحمة الله وبركاته بارك الله فيك استاذياسر خليل أبو البراء ووفقك وجعله في ميزان حسناتك ممكن شرح الكود اذا تكرمت
ياسر خليل أبو البراء قام بنشر ديسمبر 27, 2015 قام بنشر ديسمبر 27, 2015 أخي الكريم مختار البركاني السطر الأول هو سطر للإعلان عن المتغيرات المستخدمة في الكود السطر التالي Set MyRange = Range(Cells(8, 1), Cells(Cells(Rows.Count, 1).End(3).Row, 1)) هذا السطر يتم فيه تعيين قيمة للمتغير الذي سنتعامل معه وهو النطاق الذي سنقوم بعمل حلقة تكرارية لخلاياه وهو يبدأ من الخلية في العمود الأول في الصف الثامن وينتهي في نفس العمود في آخر خلية بها بيانات هذا الجزء من الكود For Each Cel In MyRange If Cel.Value = 0 And Cel.Offset(, 4).Value = 0 Then If Not Cel Is Nothing Then If Rng Is Nothing Then Set Rng = Cel Else Set Rng = Union(Rng, Cel) End If Next Cel هنا حلقة تكرارية لكل خلية من خلايا النطاق المذكور في السطر السابق يتم اختبار قيمة الخلية وكذلك قيمة الخلية في العمود الخامس التي تبعد عن الخلية الحالية بمقدار 4 أعمدة في نفس الصف ، فإذا كانت الخليتين قيمتهما = صفر يتم تنفيذ السطر التالي والذي يقوم بتخزين نطاق الخلية الحالية في متغير آخر باسم Rng .. وفي كل حلقة يتم تخزين النطاق الجديد إضافة إلى النطاق القديم .. بمعنى يتم تجميع نطاقات الخلايا التي ينطبق عليها الشرط ثم If Not Rng Is Nothing Then Rng.EntireRow.Hidden = True يتم إخفاء الصفوف للنطاق المسمى Rng (الخلايا التي انطبق عليها الشرط) مرة واحدة وهذا أسرع من الكود الأول الذي يقوم بالتعامل مع صف صف ... الفكرة في السرعة هنا في أداء الكود أن الكود يتعامل مع الخلايا التي ينطبق عليها الشرط مرة واحدة ActiveSheet.PrintPreview أخيراً يتم معاينة أو طباعة ورقة العمل النشطة وفي نهاية المطاف يتم إظهار الصفوف التي تم إخفائها مرة أخرى أرجو أن تكون الصورة قد اتضحت أخي الكريم تقبل تحياتي 2
مختار البركاني قام بنشر ديسمبر 28, 2015 الكاتب قام بنشر ديسمبر 28, 2015 ما شاء الله تبارك الله استاذياسر خليل أبو البراء ربنا يحفظك ويوفقك ويزيدك في علمك ويرضى عليك دنيا واخرة 1
ياسر خليل أبو البراء قام بنشر ديسمبر 29, 2015 قام بنشر ديسمبر 29, 2015 بارك الله فيك أخي مختار وجزيت خيراً على دعائك الطيب ولك بمثل إن شاء الله الحمد لله الذي بنعمته تتم الصالحات تقبل وافر تقديري واحترامي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.