اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

طباعة كل طلبات العميل في ورقة واحدة


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

برجاء مساعدتي في هذا الملف المرفق حيث اريد ان اطبع علي ورقه 1 كل طلبات كل عميل في ورقه علي حده

اي طباعه كل عميل علي حده

ارجوا مساعدتكم وجزاكم الله خيرا وياريت لو تشرحوا كي تعم الفائده

مشروع تخرج.rar

رابط هذا التعليق
شارك

بصراحة أخى (أبو الشرف ) أنا عمال أنظر للملف من اليمين إلى اليسار مش فاهم فية حاجة ولم أصدق إلا لما رأيت تعليق أستاذى ( عبد الله المجرب ) يحتوى على نفس الكلام

رابط هذا التعليق
شارك

اخواني اريد ان يكون الجدول الموجود في ورقه 2 - اريد ان يكتب اسم العميل في الورقه 1 مثال - العميل - -1044447 قف وتسوق ( يوجد في الورقه ) رقم 1 اريد ان ينتقل ايم العميل الي الورقه 2 ومن ثم تبدا داله vlookup ان تحدد المطلوب للعميل بوضع الكميات الموجوده عند العميل وهي رقم 1 ثم تقوم بطباعه الطلب ويتم اخذ العميل اللي بعده وهكذا حتي يتم طباعه طلبيه كل عميل بناء علي الورقه الاولي

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

أخي الكريم، بعض التعديلات على الملف وتصحيح بعض الأخطاء (أرقام أكواد محجوزة بتنسيق نص تم تعديلها - أرقام كود مكررة تم حذفها - أرقام أكواد غير موجودة تم إضافتها باللون الأحمر) مع إضافة المعادلات المناسبة للترحيل والطباعة الكلية للعملاء وفق عددهم (الخلية I1) ورقم ترتيبهم (I2)....

أرجو أني وفقت في تقريب الحل...

أخوك بن علية

مشروع تخرج.rar

نسخة لأوفيس 2003 للاستفادة: مشروع تخرج.rar

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

السلام عليكم ورحمة الله

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

 

=IF(ISERROR(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2));"";IF(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)=0;"";OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)))

وهي دالة شرطية لاستدعاء بيانات خلايا من الورقة1 معينة بتقاطع عمود (رتبة العميل في الخلية I2) مع صف (رقم سطر الكود) وشرح أجزاء المعادلة يكون كما يلي: * الجزء الأول :
IF(ISERROR(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2));"";
الذي يعني أنه في حالة إرجاع عملية البحث قيمة الخطأ (وهذا في حالة عدم وجود الكود من الخلية B8 في العمود A من الورقة 1) فإن المعادلة ترجع فراغا ""... يمكن استبدال هذا الجزء بالجزء:
 

IF(ISERROR(MATCH($B8;ورقة1!$A:$A;0));"";

* الجزء الثاني من المعادلة:
 

IF(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)=0;"";OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2))


وهذا الجزء يشتغل في حالة ما إذا كان شرط الجزء الأول غير متوفر أي في حالة وجود الكود من الخلية B8 في العمود A من الورقة 1، فيقوم بالبحث عن مضمون الخلية من الورقة1 (التي تعينها الدالة OFFSET انطلاقا من الخلية A1 من الورقة 1) التي هي تقاطع السطر (رقم سطر الكود في العمود A من الورقة 1) الذي يعينه الجزء
MATCH($B8;ورقة1!$A:$A;0)
والعمود (رقم عمود ترتيب العميل) الذي تعطيه الخلية I2 ويكون اختبار لهذه القيمة إذا كانت فارغة فترجع المعادلة فراغا وإذا كانت غير فارغة فترجع المعادلة مضمون الخلية المعينة... أرجو أني قربي شرح المعادلة الموجودة في C8 والتي تم سحبها للأسفل ثم تم نسخها في العمود F أمام الخلايا من العمود E التي تحوي أكوادا... بالنسبة لكود الطباعة فهو كود بسيط جدا وشرحه كما يلي: الكود:
 

Sub Printing()

Dim I As Integer

  For I = 1 To [I1]

    If I <= [I1] Then

	   [I2] = I

	   Activewindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

    End If

  Next

End Sub


بفرض I متغيرا طبيعيا يقوم بتغيير I من القيمة 1 (أول عميل) إلى مضمون الخلية I1 (التي كتبت فيها معادلة باستعمال الدالة COUNTA تحصي عدد العملاء)... إذا كانت قيمة I أصغر من أن تساوي مضمون الخلية I1 فيضع هذه القيمة في الخلية I2 التي تعتمد عليها الخلية C5 (اسم العميل) بتغيير اسم العميل حسب ترتيبها وتعطيه المعادلة الموجودة في هذه الخلية بالدالة INDEX والتي هي :
=INDEX(ورقة1!$1:$1;0;$I$2+1)

وبالتالي تتغير كل البيانات المرحلة في الجدول حسب هذا العميل أي حسب العدد في الخلية I2 ، ثم يقوم الكود بطباعة الورقة (بيانات العميل) على الطابعة ويمر بعدها إلى العميل الموالي ويقوم الكود بالعمليات نفسها وهكذا إلى آخر عميل ويتوقف عمل الكود بعد الانتهاء من أمر طباعة بيانات آخر عميل....

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

وأسألك وكل إخوتي وأخواتي بالمنتدى أن تدعو الله لي ولأهلي بالشفاء من كل داء وأن تلحو بالدعاء في كل حين...

أخوكم بن علية

  • Like 1
رابط هذا التعليق
شارك

يا اخي جزاك الله خيرا وجعله الله في ميزان حسناتك واللهم اشفيك انت واهلك والمسلمين وادعوا الله ان يلبسك ثوب الصحه والعافيه لتنفع المسلمين وتثقل ميزانك .. امين يارب العالمين

اخي انا اعلم اني اتعبتك ولكن عند تطبيق هذه المعادلات علي الورقه الاصليه لم تظبط بعض المعادلات ارجوا ان تساعدني في ان تطبقها علي الورقه المرفقه لكي تساعدني في هذا العمل وجزاك الله خير الجزاء

مشروع تخرج اخير.rar

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

 

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

تم إضافة كود الطباعة للملف (الذي أصبح من نوع xlmx.) مع تصحيحه حسب الخلية S6 التي تحوي "عدد العملاء". وتم أيضا تحجيم ورقة 2 للبيانات لتحتويها ورقة بحجم A4 حتى تكون لكل عميل ورقة واحدة تحوي جميع بياناته المحولة...

 

وملاحظة أخرى : تبقي أرقام الأكواد التالية : 10801109 ، 10801113 ، 10801114 ، 11001064 موجودة في الورقة 1 وبها بيانات لبعض العملاء ولكنها غير موجودة في الورقة 2 أين تُرحل هذه البيانات...

 

أخوك بن علية

 

ملف مرفق به ملفين أحدهما لنسخة 2007 (أو أعلى) وآخر نسخة 2003 :

 

مشروع تخرج أخير.rar

تم تعديل بواسطه دغيدى
  • Like 1
رابط هذا التعليق
شارك

  • 2 years later...

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information