Skip to main content

VBA Coding : For Sharing data by Email With Attachment using Excel data in other Place


' We have some data in Excel that we want to share by email with attachment
हमारे पास Excel में कुछ डेटा हैं जिन्हें हम अनुलग्नक के साथ ईमेल द्वारा साझा करना चाहते हैं

Sub For_GSTR3B_Report_Share()


Dim sWorkbook1 As Workbook
Dim wb As Workbook
Dim objApp As Object  'For New Workbook
Dim ws As Worksheet
Dim savepath As String

        'Delete all file from folder temp2
        On Error Resume Next
        Kill "C:\Users\PRAMOD.GARG\Desktop\pk_temp*.*"
        On Error GoTo 0
     
        On Error Resume Next
        Set wb = Workbooks("Pkgarg_Control_Sheet_With_Gaurav_Coding.xlsm")
        On Error GoTo 0
        If Not wb Is Nothing Then
        MsgBox "It's open"
        wb.Activate
        Worksheets("For_GSTR3B_Report_Share").Activate
     
        'Do not have to open
     
        Else
        ChDir "C:\"
        Worksheets("For_GSTR3B_Report_Share").Activate
        Set wb = Workbooks.Open(Cells(16, 3))
        wb.Activate
        End If
         
Dim fname As String
Dim i As Long
Dim signature As String

'On Error Resume Next
i = 1
fname = Sheets("For_GSTR3B_Report_Share").Cells(i + 1, 1).Value

Do While fname <> Empty
wb.Activate
fname = Sheets("For_GSTR3B_Report_Share").Cells(i + 1, 1).Value

Application.ScreenUpdating = True
Application.DisplayAlerts = True



If fname = "" Then
sWorkbook1.Activate
ActiveWorkbook.Close savechanges:=True
Exit Sub
Else
If Not IsEmpty(fname) Then
End If
End If


Dim store As String
Dim bmsg As String
bmsg = Sheets("For_GSTR3B_Report_Share").Cells(i + 1, 1).Offset(0, 2).Value
store = fname

Application.DisplayAlerts = True
Application.ScreenUpdating = True

'AutoFilter Proccess
wb.Activate
Set sWorkbook1 = Workbooks.Open(Cells(12, 3))
Application.ScreenUpdating = True
ActiveSheet.AutoFilterMode = False
sWorkbook1.Activate
With Worksheets("Sheet2").Range("$a$1:$s$215")
'.AutoFilter Field:=56, Criteria1:=Sheets("Sheet1").Range("f3")
     
'.AutoFilter Field:=57, Criteria1:=Sheets("Sheet1").Range("f5")
.AutoFilter Field:=1, Criteria1:=fname
 End With

'Workbooks("MASTER OF OUTSTATION IST QTR. demo.xlsm").Worksheets("JULY-SEPT").Activate
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range("A1").CurrentRegion.Select
Worksheets("Sheet2").Range("A1").CurrentRegion.Copy
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set objApp = Workbooks.Add
objApp.Activate

'Paste the that copy from target file.
With objApp.Worksheets("Sheet1").Range("A1")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
 End With

'Autofit the selection and delete the column
Application.DisplayAlerts = False
Application.ScreenUpdating = False

Selection.Columns.AutoFit

savepath = ".xlsx": FileFormatNum = 5
ActiveWorkbook.SaveAs Filename:="C:\Users\PRAMOD.GARG\Desktop\pk_temp\" & fname & savepath, FileFormat:=51
ActiveWorkbook.Close savechanges:=True

'Set sh = Workbooks.Open(Filename:="\\pgarg\PKGARG_REPORT_WITH_GAURAV\temp\" & Fname & savepath)
Application.DisplayAlerts = False
Application.ScreenUpdating = False
wb.Activate
'--for mail --
Select Case fname
Case fname
Dim outlookapp As Object
Dim outlookmail As Object
Dim xlnspect As Object
Dim pageEditor As Object

Set outlookapp = CreateObject("Outlook.Application")
Set outlookmail = outlookapp.createitem(0)


'On Error Resume Next
With outlookmail
     
    .to = Worksheets("For_GSTR3B_Report_Share").Cells(i + 1, 1).Offset(0, 2).Value
    .cc = Worksheets("For_GSTR3B_Report_Share").Cells(i + 1, 1).Offset(0, 3).Value
    .Subject = "GSTR3B as on 30.11.2019"
    .body = "Dear Sir" & " " & "," & vbNewLine & vbNewLine & "PFA related to GSTR3B as on 30.11.2019." & vbNewLine & "Kindly Update accordingly" & vbNewLine & vbNewLine & "Regards" & vbNewLine & "Pramod Garg"
     
    ' ActiveWorkbook.Save
    .Attachments.Add "C:\Users\PRAMOD.GARG\Desktop\pk_temp\" & fname & savepath
    '.Attachments.Add ("C:\Users\Manish Dawan\Desktop\PDf file\" & store & ".PDF")
    .display
    '.send
 

'ActiveWorkbook.Close savechanges:=True

End With
Set outlookmail = Nothing
Set outlookapp = Nothing


'Application.Wait (Now + TimeValue("00:00:15"))


End Select
i = i + 1

Loop


'Application.DisplayAlerts = False
End Sub

Comments

Popular posts from this blog

Excel VBA Code For Clear Cell एक्सेल VBA कोड क्लियर सेल के लिए

# VBA Code to Clear Cell :- To  clear cells using VBA , use a statement with the following structure:- VBA का उपयोग :-  सेल  को साफ करने के लिए Cells.Clear VBA Statement Explanation Item:  Cells. VBA Construct:  Range object. Description:  Range object representing the cells you want to clear. You can usually return a Range object with constructs such as the Worksheet.Range, Worksheet.Cells (with Range.Item), Range.Offset, Range.Resize or Application.ActiveCell properties. If you explicitly declare an object variable to represent Cells, use the Range object data type. Item:  Clear. VBA Construct:  Range.Clear method. Description:  The Range.Clear method clears the Range object you specify (Cells). Range.Clear clears the entire Range object, including values, formulas and formatting. VBA स्टेटमेंट स्पष्टीकरण 1. आइटम: सेल। VBA निर्माण: रेंज ऑब्जेक्ट। विवरण: रेंज ऑब्जेक्ट उन कोश...

Insert Multiple Blank Row मल्टीपल ब्लैंक रो डालें

👍  If you ever need to insert multiple blank rows into your data, doing it manually could be very time consuming if you have a large data set. Here’s a quick way to do this by inserting a blank row into your data after every Nth record. यदि आपको कभी भी अपने डेटा में कई रिक्त पंक्तियों को सम्मिलित करने की आवश्यकता होती है, तो मैन्युअल रूप से ऐसा करने में बहुत समय लग सकता है यदि आपके पास एक बड़ा डेटा सेट है। हर Nth रिकॉर्ड के बाद आपके डेटा में एक रिक्त पंक्ति सम्मिलित करके ऐसा करने का एक त्वरित तरीका है। Add a column  to the right of your data. If the helper column is in  E1 , then add this formula into  E2  and copy it down to the end of the data. Change N to a number (5 if you want every 5th row etc…). =MOD(ROW(E2)-ROW($E$1)-1,N) Now  highlight  the whole column. Go to the  Home  tab in the ribbon. In the  Editing  section, press the  Find & Select  button. In the drop down menu, select  Find . You ...

Basic Excel Learn by Online ऑनलाइन द्वारा बेसिक एक्सेल जानें