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

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

قام بنشر

السلام عليكم

يوجد ملف يوجد به مجموعه بيانات 

عدد الاعمده ثابت لكن عدد الصفوف متغير بالزياده او النقص

المطلوب تحديد نطاق الطباعه عند تغير البيانات في اخر صف 

بحث يكون اخر صف به بيانات هو نطاق الطباعه

اخي الكريم العيدروس

مرفق الملف

المطلوب

هو ان يتم تحديد كامل البيانات في نطاق واحد وليس اكثر من نطاق

برنامج ايجار.xlsm

قام بنشر

السلام عليكم

استعمل لذلك الدالة OFFSET -مثلا- (أو DECALER بالفرنسية) في معادلة نطاق الطباعة... وفي الموقع تجد الكثير من الأمثلة على ذلك...

بن علية حاجي

جرب المرفق لعل فيه ما تريد.... تم تسمية نطاق البيانات في ورقة "تأخير" بالتسمية Plage ثم إرفاق هذه التسمية بنطاق الطباعة لهذا الشيت....

بن علية حاجي

برنامج ايجار.xlsm

  • Like 2
قام بنشر (معدل)

استاذي الكريم

المطلوب مظبوط لكن يوجد مشكله بسيطه في حاله نقص الصفوف لا ينقص نطاق الطباعه

 

 

تم تعديل بواسطه أيهاب ممدوح
قام بنشر (معدل)

استاذ احمد لا يوجد تغير في الملف كما هو الحال

المطلوب هو تغير نطاق الطباعه حسب زيادة الصفوف او نقصانها

والاستاذ بن علية تفضل وحل الجزء الاول وهو زياده الصفوف بيتم زياده النطاق 

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

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

برنامج ايجار (1).xlsm

تم تعديل بواسطه أيهاب ممدوح
قام بنشر

السلام عليكم

إذا قمت بتعيين ناحية الطباعة للورقة يدويا (في إعدادت الصفحة مثلا) فقد ألغيت عملية تحديد ناحية الطباعة آليا؟ ألق نظرة في التسميات وخاصة في ناحية الطباعة لشيت "تأخير" تجد أني حددته بالمعادلة Plage= ويمكن أن نحددها آليا بواسطة كود VBA في حدث هذا الشيت باستعمال دائما التسمية Plage فهذا يكون آمنا... التسمية Plage مرتبطة بقيم العمود A (من الصف 1 إلى رقم صف آخر خلية غير خالية من العمود A)...

لقد أعدت ربط التسمية Plage بناحية الطباعة لشيت "تأخير" في ملفك الأخير الذي أرفقته...

بن علية حاجي

برنامج ايجار (1).xlsm

  • Like 2
  • أفضل إجابة
قام بنشر

السلام عليكم

تم إنشاء الكود التالي في حدث الشيت "تأخير":

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveSheet.PageSetup.PrintArea = [Plage].Address
End Sub

وهذا الكود يضمن أن تتحدد ناحية الطباعة آليا بالزيادة والنقصان (حسب قيم العمود A)...

كل ذلك في الملف المرفق...

بن علية حاجي

برنامج ايجار.xlsm

  • Like 1
  • Thanks 1
قام بنشر

اخ ايهاب 

هل تريد جميع الصفحات في مدى واحد

ام كل ورقة في صفحة منفردة ؟

اذا كان طلبك صفحة منفردة فالكود

السابق بيعمل معك تمام

 

  • Thanks 1
قام بنشر

السلام عليكم

كلتا الحالتين (الطريقتين) تحتاج إلى إنشاء التسمية الخاصة بالنطاق المراد طباعته وتسميتها في الملف Plage بالمعادلة التالية (التي يمكن أن تجدها في قائمة التسميات):

=OFFSET(تأخير!$B$1:$Q$1;;;MAX(IF(تأخير!$A$1:$A$10000>0;ROW(تأخير!$A$1:$A$10000))))

(يمكن استعمال معادلة أخرى بدوال أخرى وفي المنتدى تجد الكثير من الأمثلة على ذلك)

والمرحلة الثانية تكون كما يلي:

* الطريقة الأولى: تحديد "ناحية الطباعة" للشيت "تأخير" في التسميات (بعد تعيينها يدويا أو عن طريق إعدادات الصفحة) بتغيير معادلتها بالمعادلة :

=Plage

* الطريقة الثانية : إدراج الكود التالي (نسخ ولصق):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveSheet.PageSetup.PrintArea = [Plage].Address
End Sub

في كود حدث الشيت "تأخير"...  

وليس لي شرح آخر...

بن علية حاجي

  • Like 1
  • Thanks 1

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