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

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

قام بنشر

السلام عليكم
كان لدي طلب في موضوع هذا ادناه   ، وتفضل استاذنا بالإجابة عليه  بارك الله فيه 
وفضلت اعمل منفصل هنا  لنقطة اخرى

وهي اني اريد ان اجعل الإكسل يقوم بعمل في الطباعة  صفحة لكل جدول بذاته  مهما كان عدد صفوف الجدول
كيف يكون ذلك ؟؟
 اريد ان اطبع كل جدول في ورقة  ،  حتى لو تم اخفاء منه بعض الصفوف او لم اقوم بالاخفاء

Print.xlsx

  • Like 1
  • 2 months later...
قام بنشر

اشكرك على المتابعة اخي محمد

انا الملف لدي مثل اعلاه وفيه  31 جدول لعدد ايام الشهر  ،، وكما ذكرت اخي  ممكن الجدول في كل يوم  يكون كامل او ناقص

انا اريد عند الطباعة  يظهر لي  31 صفحة ثابتة  لأني عندما اقلل حجم اي جدول  كما اريد  ترتيب الصفحات يتأثر

اريد يكون 31 صفحة  واختار الورقة المطلوبة مثلا  اختيار  صفحة  5  الى صفحة 5    فتكون معناها  طباعة جدول اليوم 5 من الشهر  pdf

قام بنشر

شاهد المرفق اخي

ولطباعة جدول 5 فقط اعمل كما في الصورة

او اذا اردت طباعة جدول يوم 2 حتي جدول يوم 4

استخدم

من 2 الي 4

 

Untitled.png.642cb27588af460edc31dc4dd02ead73.png

 

Print.xlsm

 

  • Like 2
قام بنشر

اخي شاهد المرفق

استخدم زر 

Page_Setup

قبل الطباعة لتجهيز الشيت للطباعة  ..اما للطباعة او المعيانة قبل الطباعة

استخدم ازراري ولا تستخدم ازرار الاكسيل

Print.xlsm

 

  • Like 1
قام بنشر

نعم اخي

الكود يكيف نفسة حسب مساحة الجدول  أيا كانت

انسخ 

Module1 and Module2

الي ملفك

علي شرط توجية الازار الي نفس الماكروهات

وأيضا الشرط الاهم

هو ان أسماء زري

المعاينة قبل الطباعة

و الطباعة

أسمائهم علي التوالي

Bt_2 and Bt_3

وان تكون الازرار من

عناصر تحكم النموذج

وليس من

عاصر تحكم Activex

او غير أسمائهم حسب ما تصنع الازرار في الكود التالي

مع ملاجظة عناويين خلايا 

من يوم

الي يوم

في الكود

هذه الاسطر التي يجب ان تصحح خسب ما تفعل

From_Day = Range("N5")
To_Day = Range("O5")
و

If Application.Caller = "Bt_2" Then

و

If Application.Caller = "Bt_3" Then

في الكود التالي

Sub Print_Preview_And_Print()
'
From_Day = Range("N5")
To_Day = Range("O5")

ScreenOff
For Num_Day = From_Day To To_Day
    If Application.Caller = "Bt_2" Then
        Call Hide_Rows(Num_Day)
        ActiveSheet.PrintPreview
    End If
    If Application.Caller = "Bt_3" Then
        Call Hide_Rows(Num_Day)
        ActiveSheet.PrintOut
    End If
Next
ActiveSheet.Cells.EntireRow.Hidden = False
ScreenOn
'
End Sub

 

  • Like 2
قام بنشر

اخي الفاضل ..تمت التجربة الان على الملف  ، واعتذر على التأخير
ولكن عند اخفاء صفوف كثيرة في الجدول 1 و 2  وتجهيزهم للطباعة    ، ترجع الصفوف المختفية مرة اخرى وانا لا اريد ذلك
انا اريد باختصار ..طباعة كل جدول في صفحة على حدة كما اشرت في اول البوست
وان يكون كل جدول كما انا حددته  ، بمعنى هناك جدول سيكون كامل وهناك ناقص وهكذا  المهم ان يكون كل جدول في صفحة مفردة

Print.xlsm

قام بنشر

سلمت يدااك

انا اقوم باختيار الصفحات من 1 ل 3  مثلا   وعند اختيار المعاينة قبل الطباعة من كودك  يظهر لي كل ورقة بمفردها يعني اغلق الاولى تظهر الثانية وهكذا

وكذلك لو اختارت الطباعة  من كودك  يظهر  ورقة واحده فقط وليس كل الورق في ملف واحد

قام بنشر

نعم هكذا بعمل الكود

لانه بقوم بنسخ كل جدول مطلوب في شيت منفصل

أي انه يتعامل مع شبت واحد به جدول واحد فقط حتي يمكن التحكم في تكيف جدول واحد كورقة واحده للمعاينة او الطباعة

فلابد من غلق المعاينة حتي يذهب للثانبة

 

ملاحظه :

هذا كود من اصعب الاكواد التي قابلتني

 

 

  • Like 1
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information