الاستغناء عن الصفوف الفارغة اثناء الطباعة
كيف يتم الإستغناء عن الصفوف الخاليه أثناء الطباعه ؟
سؤال يطرح كثيرا بالمنتديات والمواقع المتخصصة ، وسنطرح طريقتين للإستغناء عن الصفوف الخالية اثناء الطباعه من خلال نموذج عملي .
والنموذج المرفق على فاتورة
يمكنكم تطبيقها على أى أمر آخر
واليكم الخطوات:
- يجب معرفة العمود والصف الذى ستبدأ به تدوين البيانات داخل الفاتورة ولنفترض حسب الملف المرفق أنه عمود b صف 8 ( أى الخلية b8) .
- يجب معرفة آخر صف يتم تدوين البيانات فيه والخاص بالفاتورة وحسب الملف المرفق هو ( b38) .
- نذهب لتعريف اسم الداله كما ذكرت لكم سابقا .
- تقوم بالضغط على زر جديد بالنافذة التى ستظهر أمامك .
- تظهر لك نافذة جديدة تقوم بتعريف الأسم الخاص بالدالة والذى سيرفق بالكود لاحظ ذلك جيدا تشابه الأحرف بشكل تام ويفضل تعريفها باللغة الإنجليزية .
- تقوم بإختيار النطاق ( مصنف ) من داخل النافذة ايضا الأخيرة.
- تقوم بكتابة المعادلة ( طبقا للملف المرفق ) هى:
=SUMPRODUCT((sheet2!$B$8:$B$38 <> "") * (sheet2!$B$8:$B$38 <> " "))+8
- تقوم بالذهاب إلى محرر الأكواد ALT+F11
- تقوم بإضافة موديول جديد ( من ادراج تختار موديول )
- تقوم بنسخ ولصق الكود التالي :
'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com
Sub Printing()
Rows([Row] & ":38").EntireRow.Hidden = True
ActiveWindow.SelectedSheets.PrintPreview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Rows("8:38").EntireRow.Hidden = False
End Sub
شرح مبسط للكود
قراءة الصفوف من نطاق الاسم الذى قمنا بتعريفه من خلال الداله السابقة الذكر ولاحظ تطابق كلمتين ( ROW)
اى صف به بيانات داخل هذا النطاق المعرف من قبل الداله به بيانات احتفظ به
واى صف ليس به بيانات قم بإخفائه
ثم قم بتفعيل نافذة المعاينه قبل الطباعه
وفى حاله تمت الطباعه والحمد لله كما نريد ( قم بإظهار الصفوف المخفية )
- تذهب الى صفحة الفاتورة
- تقوم بإدراج أى شكل تختاره وتكتب عليه طباعه
- تقوم بالضغط عليه كليك يمين
- تختار تعيين ماكرو
- تظهر لك نافذة
- أختر منها طباعه
- ثم موافق
طريقة أخري
كود مباشر بدون معادلة
ولكن على نطاق مختلف من ( I10:AP500 )
الشفرة كالتالي :
'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com
Sub MZM_Print()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
HIDE_BLANK
ActiveSheet.PrintPreview
UNHIDE_BLANK
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Sub p()
HIDE_BLANK
ActiveSheet.PrintOut
UNHIDE_BLANK
End Sub
Sub HIDE_BLANK()
ActiveSheet.Range("$I$10:$AP$500").AutoFilter Field:=1, Criteria1:="<>"
Range("I9").Select
End Sub
Sub UNHIDE_BLANK()
ActiveSheet.Range("$I$10:$AP$500").AutoFilter Field:=1
Selection.AutoFilter
Range("I9").Select
End Sub