Private Sub GemSomPDF_Click()
Dim rngCheck As Range Dim cllCheck As Range Dim bRedCell As Boolean Dim bCheckX As Boolean Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) Dim sht As Worksheet Set sht = ActiveSheet If Len(Dir("c:\1_Completed_PM", vbDirectory)) = 0 Then MkDir "c:\1_Completed_PM" End If 'Set path to Folder fPath = "c:\1_Completed_PM\" 'Build File Name from Sheet1 A3, A4 & C4 With sht fName = .Range("A3") & "-" & _ .Range("A4") & "-" & _ .Range("C4") fName = Replace(fName, "/", "_", , , vbTextCompare) End With
'Export as PDF to Folder Set rngCheck = sht.Range("A1:E200") For Each cllCheck In rngCheck.Cells If cllCheck.DisplayFormat.Interior.Color = 8696052 Then MsgBox "There are still red cells in the PM checklist", vbOKOnly + vbCritical, "Cell-check" bRedCell = True Exit For End If Next cllCheck If Not bRedCell Then Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) '.Orientation = xlLandscape .Orientation = xlPortrait .PaperSize = ePaperSize .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 0 End With sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fPath & fName, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False If Err = 0 Then MsgBox "The PM checklist are now saved with success. It can be found in the folder= C:\1_Completed_PM\ to attach Work Order in IFS.", vbInformation Set rngCheck = sht.Range("D9:D200") For Each cllCheck In rngCheck.Cells If UCase(cllCheck) = "X" Then bCheckX = True Exit For End If Next cllCheck If bCheckX Then If MsgBox("According to PM WO " & sht.Range("A3") & ", is one ore more things in " & sht.Range("A4") & " Not OK" & vbNewLine & vbNewLine & _ "Do you wish to send an e-mail to customerservice, so they can create a new Work Order? (INFO: The mail will be send, when the computer has internet, and Outlook is open)", _ vbYesNo + vbQuestion, "Send e-mail to get new Work Order?") = vbYes Then With OutMail .To = Sheets("Customer service e-mail address").Range("G1") .Attachments.Add fPath & fName & ".pdf" .CC = "" .BCC = "" .Subject = "According to PM WO number " & sht.Range("A3") & ", a new Work Orders is needed in " & sht.Range("A4") & " IFS-number: " & sht.Range("A2") & "" .display .HTMLbody = "<HTML><BODY>" & _ "<span style=""color:#FF0000"">On the Preventive Maintenance is one ore more things <u>''NOT OK''</u></span style=""color:#FF0000"">" & _ "<br>" & _ "<span style=""color:#FF0000"">A new Work Order needs to be created to fix this</span style=""color:#FF0000"">" & _ "<br><br>" & _ "(Make X's below if it's urgent, and if it should be invoiced. Insert the name of the contact/reference)" & _ "<br><br>" & _ "<b>Urgent (Priority 1) <u>_______________________</u></b> " & _ "<br>" & _ "<b>Regular service (Priority 2) <u>_______________________</u></b> " & _ "<br>" & _ "<b>By occasion (Priority 3) <u>_______________________</u></b> " & _ "<br><br>" & _ "<b>Being fixed on this PM? YES<u>______</u> NO<u>______</u></b> <span style=""color:#FF0000"">If YES - a Work Order should be created to <u>" & sht.Range("C3") & "</u> ASAP</span style=""color:#FF0000"">" & _ "<br><br>" & _ "<b>Should this be invoiced? YES<u>______</u> NO<u>______</u></b> " & _ "<br><br>" & _ "<b>Contact in store: <u>_______________________</u></b>" & _ "<br><br>" & _ "<b>Description of what NOT OK in the store: <u> " & sht.Range("A36") & "</b></u>" & _ "<br><br>" & _ "</BODY></HTML>" & _ "<br><br>" & _ OutMail.HTMLbody End With End If End If End If Else MsgBox "PDF-file NOT SAVED because of red cells", vbOKOnly + vbCritical, "PDF-file NOT SAVED" End If
End Sub
|