الاستغناء عن الصفوف الفارغة اثناء الطباعة

الاستغناء عن الصفوف الفارغة اثناء الطباعة


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

والنموذج المرفق على فاتورة

يمكنكم تطبيقها على أى أمر آخر

واليكم الخطوات:

  1. يجب معرفة العمود والصف الذى ستبدأ به تدوين البيانات داخل الفاتورة ولنفترض حسب الملف المرفق أنه عمود b صف 8 ( أى الخلية b8) .
  2. يجب معرفة آخر صف يتم تدوين البيانات فيه والخاص بالفاتورة وحسب الملف المرفق هو ( b38) .
  3. نذهب لتعريف اسم الداله كما ذكرت لكم سابقا .
  4. تقوم بالضغط على زر جديد بالنافذة التى ستظهر أمامك .
  5. تظهر لك نافذة جديدة تقوم بتعريف الأسم الخاص بالدالة والذى سيرفق بالكود لاحظ ذلك جيدا تشابه الأحرف بشكل تام ويفضل تعريفها باللغة الإنجليزية .
  6. تقوم بإختيار النطاق ( مصنف ) من داخل النافذة ايضا الأخيرة.
  7. تقوم بكتابة المعادلة ( طبقا للملف المرفق ) هى:


=SUMPRODUCT((sheet2!$B$8:$B$38 <> "") * (sheet2!$B$8:$B$38 <> " "))+8



  1. تقوم بالذهاب إلى محرر الأكواد ALT+F11
  2. تقوم بإضافة موديول جديد ( من ادراج تختار موديول )
  3. تقوم بنسخ ولصق الكود التالي :



'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)
اى صف به بيانات داخل هذا النطاق المعرف من قبل الداله به بيانات احتفظ به
واى صف ليس به بيانات قم بإخفائه
ثم قم بتفعيل نافذة المعاينه قبل الطباعه
وفى حاله تمت الطباعه والحمد لله كما نريد ( قم بإظهار الصفوف المخفية )

  1. تذهب الى صفحة الفاتورة 
  2. تقوم بإدراج أى شكل تختاره وتكتب عليه طباعه
  3. تقوم بالضغط عليه كليك يمين
  4. تختار تعيين ماكرو
  5. تظهر لك نافذة
  6. أختر منها طباعه
  7. ثم موافق


طريقة أخري 

كود مباشر بدون معادلة
ولكن على نطاق مختلف من ( 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
Developer MS Office VBA Application, Data Analyst, Designer And Developer of Blogger Templates, Microfinance, HR Specialist, leading businesses, Front End Web Developer.

More About

إرسال تعليق