+ Reply to Thread
Results 1 to 2 of 2

Excel Worksheet publish to HTML - can you control the scaling of the HTML to mirror Excel?

Hybrid View

  1. #1
    Forum Contributor
    Join Date
    11-28-2013
    Location
    Here
    MS-Off Ver
    Excel 2010
    Posts
    119

    Excel Worksheet publish to HTML - can you control the scaling of the HTML to mirror Excel?

    Hello,

    I have the following code, most of which comes from Ron de Bruin and his excellent site involving much about emailing in Excel VBA.

    The code simply generates an email in Outlook from a sheet of data. It works great except for one thing. The scaling of the published HTML is different than the scaling of how the sheet appears in Excel. This causes columns of data to wrap in the published HTML whereas the data in the Excel spreadsheet does not wrap. Ideally, I would like for the published HTML to look exactly as the sheet looks in Excel. I tried to use 'ActiveWindow.Zoom = 60' in the Function below to scale the Excel sheet prior to publishing but it has no effect at all.

    Any help is appreciated.

    TV

    Sub test()
           
            Dim OutApp As Object
            Dim OutMail As Object
            Dim strbody As Range
        
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            
            Set strbody = Sheets("Sheet1").Range("A1:A10")
        
            On Error Resume Next
            With OutMail
                .To = "me@me.com"
                .CC = ""
                .BCC = ""
                .Subject = "Shipped Orders Summary " & Format(Date, "dd-mmm-yy")
                .HTMLBody = RangetoHTML(strbody)
                'You can add a file like this
                '.Attachments.Add
                .display   '.Send or use .Display
            End With
            On Error GoTo 0
        
            Set OutMail = Nothing
            Set OutApp = Nothing
                
    
    End Sub
    
    Function RangetoHTML(rng As Range)
    ' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, and Outlook 2010.
        Dim fso As Object
        Dim ts As Object
        Dim TempFile As String
        Dim TempWB As Workbook
    
        TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
     
        ' Copy the range and create a workbook to receive the data.
        rng.Copy
        Set TempWB = Workbooks.Add(1)
        With TempWB.Sheets(1)
            .Cells(1).PasteSpecial xlPasteColumnWidths, , False, False
            .Cells(1).PasteSpecial Paste:=8
            .Cells(1).PasteSpecial xlPasteValues, , False, False
            .Cells(1).PasteSpecial xlPasteFormats, , False, False
            .Cells(1).Select
            Application.CutCopyMode = False
            On Error Resume Next
            .DrawingObjects.Visible = True
            .DrawingObjects.Delete
            On Error GoTo 0
        End With
        ActiveWindow.Zoom = 70
     
        ' Publish the sheet to an .htm file.
        With TempWB.PublishObjects.Add( _
             SourceType:=xlSourceRange, _
             Filename:=TempFile, _
             Sheet:=TempWB.Sheets(1).Name, _
             Source:=TempWB.Sheets(1).UsedRange.Address, _
             HtmlType:=xlHtmlStatic)
            .Publish (True)
        End With
     
        ' Read all data from the .htm file into the RangetoHTML subroutine.
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
        RangetoHTML = ts.ReadAll
        ts.Close
        RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                              "align=left x:publishsource=")
     
        ' Close TempWB.
        TempWB.Close savechanges:=False
     
        ' Delete the htm file.
        Kill TempFile
     
        Set ts = Nothing
        Set fso = Nothing
        Set TempWB = Nothing
    End Function

  2. #2
    Forum Contributor
    Join Date
    11-28-2013
    Location
    Here
    MS-Off Ver
    Excel 2010
    Posts
    119

    Re: Excel Worksheet publish to HTML - can you control the scaling of the HTML to mirror Ex

    It seems partly due to a very wide sheet of data, 26 columns wide and even though the formatting appears correct in Excel, when converting to HTML and pasting into Outlook it seems to reformat column widths so as to fit on the max width available within Outlook.

    Even so, I would be curious to know how to overcome this and also how to scale down what gets pasted into Outlook.

    TV

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. publish summary sheet of excel in existing html page
    By prabhuduraraj09 in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 07-18-2014, 01:04 AM
  2. Excel ws into outlook html body with current html signature
    By Cadelanne in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 01-29-2014, 09:03 AM
  3. convert formated excel column to html source text with html tags
    By julia81 in forum Excel Programming / VBA / Macros
    Replies: 0
    Last Post: 12-19-2011, 04:22 PM
  4. [SOLVED] publish one (and only one) html file?
    By Mark in forum Excel Programming / VBA / Macros
    Replies: 2
    Last Post: 07-05-2005, 01:05 PM
  5. Excel control in HTML
    By Xia Wei in forum Excel Programming / VBA / Macros
    Replies: 0
    Last Post: 03-03-2005, 04:06 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1