هذا بالضبط الذي يقوم الكود الموجود في الطباعة
printall
حلقة تكرارية من v7 إلى w7
ثم يكتب في v7 رقم الصفحة ثم يقوم بطباعة الحالية
وهكذا حتى تنتهي الصفحات
ما دام الترحيل تلقائيا والتعديل تلقائيا
فيمكنك استعمال المعادلات فهي يتم تحديثها حسب المصدر
وأبسط طريقة لجلب بيانات من شيت إلى آخر هو استعمال المعادلة التالية
='sheet name'!a1
وتعني إحضار قيمة الخلية a1 من الشيت المسمى sheet name
وهكذا
يمكنك معالجة هذا الأمر بوضع رقم الصف أثناء الجلب في متغير
وعند الإضافة يختبر إذا كان المتغير فارغا فيقوم بالإضافة وإلا فيتم التعديل في رقم الصف الموجود في المتغير
يفضل البدء في البرنامج بنفسك
وإذا احتجت لنقطة أو اثنين ستجد المساعدة
لكن الواضح لي أنه لا يوجد برنامج
وتريد من الآخرين إنشاؤه من الصفر
وهذا صعب في باب المساعدات المجانية
الصور الثلاث لا تفيد في الوصول لسبب المشكلة
ففي الصورة الأولى معنى الرسالة أن الاكسل لا يجد الكائن أو المكتبة البرمجية (لقد استعملت اسما لعنصر غير موجود أو خطأ إملائي في اسم الكائن الذي لا يظهر في الصورة)
لذلك كما أخبر الأستاذ عبد الله يفضل إرفاق ملفك أو جزء منه يوضح المشكلة
وبإذن الله نتوصل للحل
أكرر نفس الكلام
لأن لو فهمي لما تقوله صحيح (وهو أنك تريد بداية الترقيم من 1 في بداية كل يوم)
فهذا ينافي كل قواعد البرمجة
فيجب أن يكون لكل فاتورة رقم فريد لا يتكرر
وهذا يكرر رقم الفاتورة في كل يوم مرة أخرى
في حالة عدم وجود الخط المستعمل في جهاز الكمبيوتر يظهر النص بالخط الافتراضي لديك
ولكن يظهر اسم الخط في قائمة الخطوط في تبويب الصفحة الرئيسية
وذلك بعد تحديد النص طبعا
يمكن بعدها البحث عن اسم الخط وتحميله وتثبيته في الويندوز
بعدها سيظهر كما في ملف pdf
بالتوفيق
أعتقد أن المطلوب الأول مرتبط بنمط القائمة المختصرة في اكسل عموما
وبالنسبة لتغيير faceid فهي مجموعة من الأرقام غير كما تشاء
ويمكنك استعمال هذا الملف للتعرف على أشكال وأرقام أول 4000 من رموز الاكسل
الرموز تظهر في تبويب جديد
FaceID2.zip
تفضل أخي الكريم
تم إنشاء إجراء لكل زر يقوم هذا الإجراء بإنشاء قائمة مختصرة حسب رقم العمود
وفي أثناء إنشاء القائمة المختصرة يقرأ الخلايا الموجودة في الصفوف 22 وما بعدها في العمود المحدد ويضيفها إلى القائمة
وتم إنشاء إجراء لكل شيت لفتحها
بالتوفيق
mas_Classeur1.xlsm
كيف ليس هذا هو المطلوب؟
في السجل الأول تكتب أسماء الحقول بصورة طبيعية
في السجل الثاني تضيف كلمة next record قبل أول حقل
في السجل الثالث تضيف كلمة next record قبل أول حقل وهكذا
مثال:
الاسم: «name»
العنوان: «address»
الرقم: «mark»
*************************
الاسم: «Next Record»«name»
العنوان: «address»
الرقم: «mark»
*************************
الاسم: «Next Record»«name»
العنوان: «address»
الرقم: «mark»
أليس هذا هو المطلوب بالنسبة لحضرتك؟ ولا أنا فهمت بطريقة غير صحيحة؟!!
بالنسبة للمطلوب الأول
يمكنك استعمال هذا الإجراء
Sub tar7eel()
For n = 3 To 51
Sheets("خصم").Range("c" & n - 2).Value = Sheets("حساب").Range("f" & n).Value
Next n
MsgBox "Done"
End Sub
وبالنسبة للمطلوب الثاني
في صفحة حساب يوجد في العمود f معادلة وإذا تم الترحيل من صفحة خصم إليها سيتم حذف المعادلة
حسب فهمي للمطلوب وعذرا إذا اختلف
يمكنك وضع هذه المعادلة في الخلية D2
=IFERROR(IF(COUNTIFS($A$2:A2,A2,$B$2:B2,B2)=1,D1+1,D1),1)
إن شاء الله تكون هي المطلوب
مادام الكل يأخذ نفس الرقم في نفس اليوم فلا داعي لخانة الرقم ويتم استعمال خانة التاريخ بدلا منها
ورغم ذلك
يفضل عمل عمود إضافي فيه رقم الفاتورة المتوقع حسب الشروط التي عندك
لأني مش فاهم الشروط بدقة
وبإذن الله يتم تحويلها إلى معادلة
إذا دعت الحاجة لوضع أكثرمن سجل في صفحة واحدة من دمج المراسلات عموما
يمكنك استعمال next record قبل اسم الحقل مثل:
«Next Record»«field name»
ويجب عدم تكرارها مع باقي الحقوق في نفس السجل
بالتوفيق