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

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


إذهب إلى أفضل إجابة Solved by أ / محمد صالح,

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

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

عندي كودين الأول لترحيل حلقة متكررة إلى شيت 2 وحفظ الشيت الثاني PDF

والكود الثاني من تعديل الأستاذ (الرائد77)

عند دمج الكودين يطلع لي خطأ في السطر sned

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

 

المطلوب :

1) تصحيح خطأ الإرسال بالإيميل

2) وإذا كان من الممكن استبدال سطر

    a = 1
    
    Do While a <= 4

 

بهذا السطر لكي استغني عن تعديل الكود في كل مرة 

For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row

 

الكود بالكامل

Sub Send_Payslip()

  Dim OutApp    As Object
  Dim OutMail   As Object
    
    a = 1
    
    Do While a <= 4
    
    EmpID = Sheet2.Range("A8").Offset(a, 0).Value
    Sheet3.Range("A8").Value = EmpID
    
    Filename = Sheet3.Range("A1").Value & ".pdf"
    Sheet3.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & Filename
    
      Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(0)
  With OutMail
    .To = Range("A22").Value
    .Subject = Range("A1").Value
    .HTMLBody = Range("A1").Value
    .Attachments.Add (ThisWorkbook.Path & "\" & Sheet3.Range("A1").Value & ".pdf")
    .Send
  End With
  Set OutMail = Nothing
  Set OutApp = Nothing
    
        a = a + 1
        
        Loop

End Sub

تحياتي للجميع

إرسال إيملات pDF.xlsm

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

  • أفضل إجابة

بالنسبة لمشكلة الإرسال فيبدو ان الإرسال يتم قبل أن يتم تصدير الملف pdf 

لذلك يمكنك استعمال أمر الانتظار قبل تنفيذ الكود الثاني لبعض الثواني باستعمال الأمر wait هكذا

Application.Wait DateAdd("s", 5, Now)

وبالنسبة لاستبدال while فلا مشكلة لم يستعمل المتغير a في الكود

ضع سطر for بدلا من while 

وضع سطر next بدلا من زيادة المتغير a وبعده loop

بالتوفيق 

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

جزاك الله خيرا يا أستاذنا (محمد صالح)

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

قال الرسول صلى الله عليه وسلم (خير الناس أنفعهم للناس)ـ

  • Like 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