Home |
Search |
Today's Posts |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I think that, instead of using Excel's Publish feature to write a html, you
shoud create the HTML file yourself this coud be done by replacing this piece of code: ----------------- ActiveWorkbook.PublishObjects.Add( _ SourceType:=xlSourceSheet, _ FileName:="\\stm-fs1\marketing-shared\feedback\htm\" & xlName & ".htm", _ Sheet:="Sheet1", _ Source:="", _ HtmlType:=xlHtmlStatic).Publish ----------------- with --------------------- Open "\\stm-fs1\marketing-shared\feedback\htm\" & xlName & ".htm" for output as #1 Print #1, "<HTML<HEAD<TITLE</TITLE</HEAD<BODY<TABLE" Print #1, "<TR" For col = 1 To 4 Print #1, "<TH" & Cells(1, col).Text & "</TH" Next col Print #1, "</TR" Dim row As Integer row = 2 While Cells(row, 1).Text < "" Print #1, "<TR" For col = 1 To 4 Print #1, "<TD" & Cells(row, col).Text & "</TD" Next col Print #1, "</TR" row = row + 1 Wend Print #1, "</TABLE</BODY</HTML" Write #1, Close #1 ---------------- If you are familiar with HTML, you will be able to do some formatting to the output Hope that helps "itsonlyme4" wrote: Code below!!! I am haveing a huge problem with this code.. I didn't write it.. just trying to troubleshoot it. the macro runs via outlook but the output is an excel file which is then converted to a .htm file. It is truncating the messagebody in the .htm file when it does the conversion... but when I open the .htm file with wordpad, all of the characters are there!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CAN ANYONE HELP?????? Dim strMessageBody As String Dim strAttachment As String Dim dtStartDate As Date Dim dtEndDate As Date Dim globalRowCount As Long Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Option Explicit Sub Export() Dim olApp As Outlook.Application Dim olSession As Outlook.NameSpace Dim olStartFolder As Outlook.MAPIFolder Dim olDestFolder As Outlook.MAPIFolder Dim strprompt As String Dim recipient As String Dim localRowCount As Integer Set xlApp = CreateObject("Excel.Application") 'Initialize count of folders searched globalRowCount = 1 ' Get a reference to the Outlook application and session. Set olApp = Application Set olSession = olApp.GetNamespace("MAPI") ' Allow the user to input the start date strprompt = "Enter the start date to search from:" dtStartDate = InputBox(strprompt, "Start Date", Now() - 7) ' Allow the user to input the end date strprompt = "Enter the end date to search to:" dtEndDate = InputBox(strprompt, "End Date", Now()) ' UserForm1.Show If (IsNull(dtStartDate) < 1) And (IsNull(dtEndDate) < 1) Then ' Allow the user to pick the folder in which to start the search. MsgBox ("Pick the source folder (Feedback)") Set olStartFolder = olSession.PickFolder ' Check to make sure user didn't cancel PickFolder dialog. If Not (olStartFolder Is Nothing) Then ' Start the search process. ProcessFolder olStartFolder MsgBox CStr(globalRowCount) & " messages were found." End If xlApp.Quit ' strprompt = "Enter the recipient of the .html attachment in format: " ' recipient = InputBox(strprompt, "Recipient's email", ") ' DTSMailer strMessageBody, strAttachment ' DTSMailer commented out b/c no DTS package reference available on Geeta's machine. ' MsgBox "Email sent to " & recipient MsgBox "Process is complete. Check K:\feedback\htm\ for available files." End If End Sub Sub ProcessFolder(CurrentFolder As Outlook.MAPIFolder) Dim i As Long Dim ValidEmails As Long ValidEmails = 0 For i = CurrentFolder.Items.Count To 1 Step -1 If ((CurrentFolder.Items(i).ReceivedTime = dtStartDate) And (CurrentFolder.Items(i).ReceivedTime < dtEndDate)) Then ValidEmails = ValidEmails + 1 End If Next If CurrentFolder.Items.Count = 1 And ValidEmails = 1 Then Dim localRowCount As Integer Dim xlName As String Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) localRowCount = 1 xlName = CStr(Format(dtStartDate, "MMDDYYYY")) & "_" & CurrentFolder.Name & "_feedback" xlSheet.Cells(localRowCount, 1) = "SUBJECT" xlSheet.Cells(localRowCount, 2) = "SENDER" xlSheet.Cells(localRowCount, 3) = "RECEIVED DATE" xlSheet.Cells(localRowCount, 4) = "MESSAGE BODY" ' Late bind this object variable, ' since it could be various item types Dim olTempItem As Object Dim olNewFolder As Outlook.MAPIFolder ' Loop through the items in the current folder. ' Looping through backwards in case items are to be deleted, ' as this is the proper way to delete items in a collection. For i = CurrentFolder.Items.Count To 1 Step -1 Set olTempItem = CurrentFolder.Items(i) ' Check to see if a match is found If ((olTempItem.ReceivedTime = dtStartDate) And (olTempItem.ReceivedTime < dtEndDate)) Then localRowCount = localRowCount + 1 globalRowCount = globalRowCount + 1 xlSheet.Cells(localRowCount, 1) = olTempItem.Subject xlSheet.Cells(localRowCount, 2) = olTempItem.SenderEmailAddress xlSheet.Cells(localRowCount, 3) = CStr(Format(olTempItem.ReceivedTime, "MM/DD/YYYY")) ' Added this row of Code 4/3/06 jmr xlSheet.Cells(localRowCount, 4) = WorksheetFunction.Clean(olTempItem.Body) ' xlSheet.Cells(localRowCount, 4) = Replace(Replace(Replace(olTempItem.Body, Chr(9), " "), Chr(10) & Chr(10), Chr(10)), Chr(13), "") End If Next readability_and_HTML_export xlBook.SaveAs ("\\stm-fs1\marketing-shared\feedback\xls\" & xlName & ".xls") ActiveWorkbook.PublishObjects.Add( _ SourceType:=xlSourceSheet, _ FileName:="\\stm-fs1\marketing-shared\feedback\htm\" & xlName & ".htm", _ Sheet:="Sheet1", _ Source:="", _ HtmlType:=xlHtmlStatic).Publish ' strAttachment = strAttachment & "\\stm-fs1\finapps\dynamics\feedback\" & xlName & ".htm; " xlBook.Save xlBook.Close End If ' New temp code - 040406 ' Loop through and search each subfolder of the current folder. For Each olNewFolder In CurrentFolder.Folders Select Case olNewFolder.Name Case "Deleted Items", "Drafts", "Export", "Junk E - mail", "Notes" Case "Outbox", "Sent Items", "Search Folders", "Calendar", "Inbox" Case "Contacts", "Journal", "Shortcuts", "Tasks", "Folder Lists" Case Else ProcessFolder olNewFolder End Select Next olNewFolder ' The next five lines are the original code ' Loop through and search each subfolder of the current folder. ' For Each olNewFolder In CurrentFolder.Folders ' If olNewFolder.Name < "Deleted Items" And olNewFolder.Name < "Drafts" And olNewFolder.Name < "Export" And olNewFolder.Name < "Junk E - mail" And olNewFolder.Name < "Outbox" And olNewFolder.Name < "Sent Items" And olNewFolder.Name < "Search Folders" And olNewFolder.Name < "Calendar" And olNewFolder.Name < "Contacts" And olNewFolder.Name < "Notes" And olNewFolder.Name < "Journal" And olNewFolder.Name < "Shortcuts" And olNewFolder.Name < "Tasks" And olNewFolder.Name < "Folder Lists" And olNewFolder.Name < "Inbox" Then ' ProcessFolder olNewFolder ' End If ' Next End Sub Private Sub readability_and_HTML_export() ' ' readability_and_HTML_export Macro ' Cells.Select Cells.EntireColumn.AutoFit Cells.EntireRow.AutoFit Columns("A:A").ColumnWidth = 32 ' Range("A1").Select ' Range(Selection, Selection.End(xlDown)).Select ' Range(Selection, Selection.End(xlToRight)).Select Cells.Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlTop .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("A1:D1").Select With Selection.Interior .ColorIndex = 37 .Pattern = xlSolid End With Selection.Font.Bold = True Columns("C:C").Select With Selection .HorizontalAlignment = xlLeft .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With If Columns("D:D").ColumnWidth < 80 Then Columns("D:D").ColumnWidth = 80 End If If Columns("B:B").ColumnWidth 40 Then Columns("B:B").ColumnWidth = 40 End If End Sub 'Private Sub DTSMailer(messagebody As String, attachmentstring As String) Private Sub DTSMailer() Dim oPKG As New DTS.Package oPKG.LoadFromSQLServer "SQLServer", , , _ DTSSQLStgFlag_UseTrustedConnection, , , , "Feedback_Mailer" oPKG.FailOnError = True ' oPKG.GlobalVariables.Item("messagebody") = messagebody ' oPKG.GlobalVariables.Item("attachmentstring") = attachmentstring oPKG.Execute oPKG.UnInitialize Set oPKG = Nothing End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Why is Excel truncating my text to 255 characters? | Excel Discussion (Misc queries) | |||
Intentionally truncating text characters | Excel Discussion (Misc queries) | |||
truncating a colum to 55 characters | Excel Discussion (Misc queries) | |||
Exported File truncating cell data after 255 characters | Excel Discussion (Misc queries) | |||
truncating pasted text after 250 characters | Excel Programming |