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

كود لتصدير كافة الشهادات بصيغة pdf


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

الأخوة الكرام أعضاء المنتدى

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

**************************************

من فضلكم اريد كود لتصدير كافة الشهادات بصيغة pdf إلى نفس مسار الملف

فقد جربت كود بسيط فى المرفق

ولكن بقوم بتصدير الـ 21 شهادة الظاهرة عند الطباعة فقط

فرجاء تعديل الكود ليقوم بتصدير كافة الشهادات

رجاء آخر : كود لطباعة كافة الشهادات مرة واحدة .

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

**************************************

عـــــــذرا إذا كنت أثقلت عليكم

**************************************

زادكـــم الله علمًا وجعله سبيلا لكم إلى الجنة

طباعة كافة الشهادات وتصديرها pdf.rar

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

وعليكم السلام أخي العزيز محمد الدسوقي

في الحقيقة سأتناول نقطة واحدة فقط في الموضوع ، وهي تصدير الشهادات كلها إلى ملف PDF

رابط الملف من هنا

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

بارك الله فيك أستاذى الجليل / ياسر

وجزاك الله عنا خيرا كثيرا

تعجز مفردات اللغة عن تقدير مدى شكرى وامتنانى لشخصكم الكريم

بفضل الله ونعمته .. الكود شغال 100 % والحمد لله

جعله الله فى ميزان حسانتك

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

أستاذى القدير // ياسر خليل 

جميل جدا ها الكود

وعجبتنى فكرته المرتبطة بتصدير الشهادات لشيت اكسل مجمع ومنه الى PDF

جزيتم عنا خير الخير وسلمتم من كل سوء

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

بارك الله فيك أخي الحبيب محمود وجزيت خيراً

مشكور على مرورك العطر بالموضوع ، والحمد لله أن نالت الفكرة إعجابك 

تقبل تحياتي

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

بارك الله فيك أستاذى الجليل / ياسر

وجزاك الله عنا خيرا كثيرا

و أتمنى تمام الفائدة لهذا الموضوع   لـــو

تكرمتم بكود للطلبين الآخريين ( معلش أنا طماع  ، ولكن الطمع فى العلم محمود )

وهما   1 ـ كود  سريع لطباعة كافة الشهادات مرة واحدة بالطريقة العادية ( مش  تصدير pdf )

          2 ـ كود لطباعة عدد محدد من الشهادات ( من .... إلى .... باستخدام فورم )

وبذلك يكون لدينا موضوع متكامل عن طباعة الشهادات بشتى الطرق

أظن أنا تعبتك معايا أوى أخى و أستاذى الجليل / ياسر

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

أخى الكريم 

وبعد اذن أخى الحبيب وأستاذى // ياسر خليل

تجد بالمرفقات طباعه الشهادات من خلال فورم ( من : الى )

وبالنسبة لطباعة الشهادات كافة ( يوجد بالمنتدى هذا الكود  الأكثر من رائع وعلى ما أعتقد لا يوجد مثله بالمنتدى ) وهو للعلامة القدير أستاذى // عبد الله باقشير 

أنا أتذكر اسم الملف ( كنترول رائع ) ولا أتذكر اسم الموضوع كل المطلوب منك تغيير النطاق وتحديد الأعمدة به ليتناسب مع مطلبك

 

Certificates By Form MZM_ELSHRIEF.rar

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

اخي الحبيب محمد الدسوقي

أنت قديم بالمنتدى وتعرف الشروط ، الأفضل دائماً أن يكون هناك طلب واحد لكل موضوع حتى يسهل على الباحث فيما بعد أن يجد بغيته

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

أما فيما يخص الفورم : فإذا حضر الماء بطل التيمم ، قام أخونا الغالي محمود بالأمر

وتقبلوا وافر تقديري واحترامي

أخي الحبيب محمود

بعد الإطلاع على الفورم الجميل الذي قمته بعمله ، رأيت سطر الحلقة التكرارية بهذا الشكل

For end_p = 1 To Page_p

لما لا تبدأ الحلقة التكرارية بقيمة المتغير FromS بشكل مباشر وتنتهي بالمتغير ToS ، وفي هذه الحالة لن يكون هناك داعي لهذا السطر

FromS = FromS + 1

حيث ستكون قيمة العداد في الحلقة التكرارية تساوي Froms ، ومن ثم يتم تعديل المتغير في هذا السطر

Range("MZM_P_C") = FromS

ليكون بهذا الشكل

Range("MZM_P_C") = end_P

وأيضاً لن يكون هناك داعي في هذه الحالة لهذين السطرين

Page_p = ToS - FromS + 1
       end_p = 0

تقبل وافر تقديري واحترامي

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

يمكن أن يكون بهذا الشكل في النهاية

Private Sub CommandButton1_Click()
    Dim fromS As Integer, toS As Integer, end_p As Integer

    fromS = TextBox1.Value
    toS = TextBox2.Value

    If fromS > toS Then
        MsgBox "تأكد من الإدخالات"
    Else
        For end_p = fromS To toS
            Range("O1").Value = end_p
            Sheets("Certificates").PrintOut Copies:=1, Collate:=True
        Next end_p

        TextBox1 = "": TextBox2 = ""
        MsgBox "تمت الطباعة المحددة"
    End If
End Sub

Private Sub CommandButton2_Click()
    MZM_CERTIFICATES.Hide
End Sub

أحب الإعلان عن المتغيرات (يعتبرها المبرمجون عادة حسنة) ..أرجو ألا تنزعج من مناقشتي للكود ، فإنني إذا أعجبني كود أحب دراسته بشكل مفصل

تقبل تحياتي

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

 أخى الحبيب وأستاذى // ياسر خليل

أسلوبك فى إيصال المعلومة بأكثر من شكل للوصول للهدف بدقة

ومن نقاشكم وحواركم فى تحليل الكود يجعلنى أستفيد أكثر ويفيد من يرغب فى التعلم

جزيتم عنى خير الخير ونسأل الله لكم أن يزيدكم من فضله ومن علمه

تقبل منى وافر الاحترام والتقدير 

 

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

بارك الله فيك وجزاك الله خيراً أخي الغالي محمود

لكم أسعدني تقبلك للمناقشة ، فبالمناقشة يستفيد الجميع ( أنا وأنت وصاحب الموضوع وكل من يطلع عليه ، فالاستفادة تكون عامة)

تقبل اللهم منا ومنكم صالح الأعمال

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

أخى الحبيب وأستاذى // ياسر خليل

جزيتم عنى خير الخير ، وزادكم الله من نعمه 

 

أخى الكريم الأستاذ / محمد

تجد بالمرفقات ملف به طباعه جميع الشهادات ومسح الشهادات وجمد قلبك وإضغط على مسح ومتقلقش، وتحويل أى شيت الى PDF أو أى نطاق الى PDF أو كامل المصنف الى PDF

ممكن بعد إصدار أمر طباعة الكل يمكنك تحويل شيت الشهادات الى PDF

 

All Certificates print_ FORM OR ALL OR PDF _By _MZMELSHRIEF.rar

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

6 ساعات مضت, محمود_الشريف said:

أخى الحبيب وأستاذى // ياسر خليل

جزيتم عنى خير الخير ، وزادكم الله من نعمه

أخى الكريم الأستاذ / محمد

تجد بالمرفقات ملف به طباعه جميع الشهادات ومسح الشهادات وجمد قلبك وإضغط على مسح ومتقلقش، وتحويل أى شيت الى PDF أو أى نطاق الى PDF أو كامل المصنف الى PDF

ممكن بعد إصدار أمر طباعة الكل يمكنك تحويل شيت الشهادات الى PDF

All Certificates print_ FORM OR ALL OR PDF _By _MZMELSHRIEF.rar

ملف ولاأروع منه

وسيزداد حسنا وفائده عند شرح اسطره ... لماذا ؟

حتى يستفيد منه الاخرون في ملفاتهم

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

فيعمل الكود معهم في ملفهم

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

أخى و أستاذى الجليل / ياسر خليل

اشكرك شكرا جزيلا على نصائحك الغالية وبالفعل جارى استخدام كود تصدير الشهادات مع التعديل عليه ليصلح لطباعة الشهادات

جعله الله في ميزان حساناتك

*************************************************

أخى الكريم الأستاذ / محمود_ الشريف

أشكرك شكرا جزيلا على هذه الأكواد الرائعة التي أضفت على الموضوع الكثير من العلم والخبرة

وجارى تجربة هذه الأكواد جميعها على ملفات أخرى

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

وبذلك يكون قد اكتمل موضوع الطباعة بأكثر من شكل وكذلك تصدير كافة الأوراق أو الأوراق المحددة  إلى صيغة Pdf

فجزاكم الله خيرا وجعل ذلك في موازيين حسناتكم إنه ولى ذلك والقادر عليه

تم تعديل بواسطه الأستاذ / محمد الدسوقى
رابط هذا التعليق
شارك

فيما يختص بشرح كود طباعة الشهادة

'     بدء الكود بتحديد النطاقات الثابة
'      const  تستخدم لتحديد الثوابت
'     اسم ورقة الشهادات
Const ShName As String = "Certificates"
'     رقم اول صف للشهادة
Const FirstRow As Integer = 6
'     عدد صفوف الشهادة
Const CountRow As Integer = 17
'عدد اعمدة الشهادة التي تريد اظهارها في الطباعة
Const CountColumn As Integer = 17
' خلية موقع الطالب  لمعادلات الشهادة
Const Range_Index As String = "A6"
'     اسم ورقة البيانات
Const Sh As String = "Data"
' نطاق الاسماء في ورقة البيانات
Const MyNSearch As String = "C5:C44"
'   الخلية التى بها عدد كل الطلاب تجدها بشيت الشهادة
Const CountAll As String = "E1"
'     متغيرين نعلن عنهم
Dim MZM_Test As Boolean
Dim MySheet As Worksheet
Sub MZM_ALL()
'     إيقاف تحديث الشاشة
Application.ScreenUpdating = False
'     استدعاء الكود
MZM_ClearContents
With MySheet
'     اسم النطاق الثابت المعلن عنه سابقا (Range_Index)خلية موقع الطالب لمعادلات الشهادة
    .Range(Range_Index).Value = 1
'      استدعاء عمل الكود التالى مع الأخذ فى الاعتبار الثابت الذى قمنا بتعريفة وهى الخلية التى عدد اجمالى الطلاب
    Call MZM_Test_Fill(.Range(CountAll))
'   اذا كان المتغير المعلن عنه بأول الكود به بيانات بناء على خلية معادله الشهادة تم تنفيذ المطلوب مع استدعاء الكود بالسطر السابق اذن يتم تطبيق التالي
'     يتم مسح النطاق للكتابه فيه مع عرض الطباعة
    If MZM_Test Then .PrintPreview Else .Range(Range_Index).ClearContents
End With
'     اعادة تحديث الشاشة
Application.ScreenUpdating = True
End Sub
Sub MZM_Delete()
'     إيقاف تحديث الشاشة
Application.ScreenUpdating = False
'     استدعاء عمل الكود التالى
MZM_ClearContents
'     اعادة تحديث الشاشة
Application.ScreenUpdating = True
'    حفظ العمل واظهار رسالة تفيد ذلك
ThisWorkbook.Save
MsgBox "تم مسح الشهادات وحفظ نطاق عمل الشهادة الرئيسية", vbMsgBoxRight, "الحمد لله الذى بنعمته تتم الصالحات"
End Sub
Sub MZM_ClearContents()
'   متغير نعلن عنه
Dim T As Long
'     تخصيص متغير أعلن عنه سابقا
Set MySheet = Sheets(ShName)
With MySheet
'  خلية موقع الطالب  لمعادلات الشهادة وهو من الثوابت المعلن عنها سابقا يتم المسح مع الحفاظ على النموذج ( الشهادة الرئيسية) الذى يستخدم للنسخ كما هو
   .Range(Range_Index).ClearContents
    T = .UsedRange.Rows.Count
    .Rows(FirstRow + CountRow).Resize(T).Delete
'     نطلب منه الوقوف على الخلية التى تم الاعلان عنها كثابت وهى خلية موقع الطالب لمعادلات الشهادة
     Application.GoTo .Range(Range_Index), True
End With
End Sub
'    الكودين التاليين يختصوا بنسخ نطاق الشهادة بما فيها من معادلات وتنسيق مع رسالة توضح اذا كان لا يوجد معادلات 
Sub MZM_Test_Fill(MyCel As Range)
If IsNumeric(MyCel) And MyCel.Value > 0 Then
    MZM_Test = True
    If MyCel.Value <> 1 Then Call MZM_AutoFill(MyCel.Value)
Else
    MZM_Test = False
    MsgBox MyCel.Offset(0, -1) & Chr(10) & Chr(10) & MyCel, 524288 + 1048576 + 16, "بيانات غير متوفرة"
End If
End Sub
Sub MZM_AutoFill(R As Integer)
Dim SourceRange As Range, fillRange As Range
Dim RR As Long
RR = (R * CountRow)
With MySheet
    Set SourceRange = .Rows(FirstRow).Resize(CountRow)
    Set fillRange = .Rows(FirstRow).Resize(RR)
    SourceRange.AutoFill fillRange, xlFillDefault
    .PageSetup.PrintArea = .Range("B" & FirstRow).Resize(RR, CountColumn).Address
End With
End Sub

 

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

 

أخى الكريم الأستاذ // ناصر سعيد

سنضيف على مثال الأستاذ // محمد الدسوقى

تجد انه تم وضع فى خليه E1 عدد الطلاب كاملا

سنضع بالخلية D2 كلمة ناجح وبالخلية المقابلة لها E2 عدد الناجحين

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

وسنضيف بالكود كود طباعه الناجحين وربطه بزر طباعه الناجحين فقط وسيكون كالتالى 

' نطاق ناجح  في ورقة البيانات بإفتراض أن هذا العمود المسجل بالكود هو من يحدد ناجح أو راسب ونسميه مثلا MYND
Const MyND As String = "D4:D44"
'    خلية عدد الناجحين
Const CountNA As String = "E2"
'   كلمة البحث عن الناجحين ونسميها مثلا NA_G
Const NA_G As String = "ناجح"


Sub الناجحين()
Application.ScreenUpdating = False
MZM_ClearContents
With MySheet
    Call MZM_Test_Fill(.Range(CountNA))
    If MZM_Test Then Call MZM_Nd(NA_G): .PrintPreview
End With
Application.ScreenUpdating = True
End Sub

 

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

أخى الكريم الأستاذ // ناصر

تم إضافة المطلوب ( طباعه الكل & طباعه ناجح & طباعة راسب ) على نفس نموذج الأستاذ // محمد

 

All Certificates print_ FORM OR ALL OR PDF _By _MZMELSHRIEF+PR_N_R.rar

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

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