Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default Inserting Excel OLE Object

Hi,

I saw an example in this forum to push changes from Excel to Word, and
modified it slightly to inste excel table(OLE tables) from Excel to Word. I
can get it work for inserting the entire table, but would it be possible to
insert just a portion of the table? i.e. i have a huge spreadsheet, but I
want to display just the first two columns in Word....

Thanks you for the response.

Aga

Here is my code from Excel

Public Sub rnn()
Dim rng As Object
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

Dim wddoc As Object
Set wddoc = wdApp.Documents.Add("c:\del.doc")

Dim bkMark As Object
Dim bkMarks As Object
Set bkMarks = wddoc.Bookmarks
For Each bkMark In bkMarks
Debug.Print bkMark.Name
If (bkMark.Name = "img_bk") Then
Set rng = bkMark.Range
End If
Next bkMark



' rng.InlineShapes.AddPicture
"C:\Projects\VisualScreen_2BETA\Code\vs_logo.j pg", , , rng
rng.InlineShapes.AddOLEObject , "c:\someexcel.xml", , , , , , rng

wddoc.SaveAs "c:\del_modified.doc"
wddoc.Close

Set wddoc = Nothing
Set wdApp = Nothing

End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 146
Default Inserting Excel OLE Object

Your code is inserting an OLE object from an Excel XML file. The entire XML file is
inserted into the OLE object. You would need to store a subset of the worksheet as
the source XML file.

Alternatively, you could open the Excel workbook in Excel through Word VBA
automation, then make the changes and insert the desired range into Word.

You could write code to edit the range of the workbook prior to inserting it. The
following edits a regular workbook (not XML, my laptop only has Excel 2000), saves
it with a new name, and then inserts it:

Sub Macro1()
Dim xlWbk As Excel.Workbook
Dim sFileName1 As String

Const sFileName As String = "C:\MyFile.xls"
sFileName1 = Replace(sFileName, ".xls", "_1.xls")

Set xlWbk = GetObject(sFileName)
With xlWbk.worksheets(1)
.Columns(4).Delete
.Rows(10).Delete
End With
xlWbk.SaveAs sFileName1
xlWbk.Close
Set xlWbk = Nothing

Selection.InlineShapes.AddOLEObject _
ClassType:="Excel.Sheet.8", FileName:=sFileName1, _
LinkToFile:=False, DisplayAsIcon:=False

End Sub

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______

raven wrote:

Hi,

I saw an example in this forum to push changes from Excel to Word, and
modified it slightly to inste excel table(OLE tables) from Excel to Word. I
can get it work for inserting the entire table, but would it be possible to
insert just a portion of the table? i.e. i have a huge spreadsheet, but I
want to display just the first two columns in Word....

Thanks you for the response.

Aga

Here is my code from Excel

Public Sub rnn()
Dim rng As Object
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

Dim wddoc As Object
Set wddoc = wdApp.Documents.Add("c:\del.doc")

Dim bkMark As Object
Dim bkMarks As Object
Set bkMarks = wddoc.Bookmarks
For Each bkMark In bkMarks
Debug.Print bkMark.Name
If (bkMark.Name = "img_bk") Then
Set rng = bkMark.Range
End If
Next bkMark



' rng.InlineShapes.AddPicture
"C:\Projects\VisualScreen_2BETA\Code\vs_logo.j pg", , , rng
rng.InlineShapes.AddOLEObject , "c:\someexcel.xml", , , , , , rng

wddoc.SaveAs "c:\del_modified.doc"
wddoc.Close

Set wddoc = Nothing
Set wdApp = Nothing

End Sub


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 25
Default Inserting Excel OLE Object

But Jon,
How do you it with an Excel Range?
I have 5 ranges and I would like to select which range to copy across Word.
Francisco


"Jon Peltier" wrote:

Your code is inserting an OLE object from an Excel XML file. The entire XML file is
inserted into the OLE object. You would need to store a subset of the worksheet as
the source XML file.

Alternatively, you could open the Excel workbook in Excel through Word VBA
automation, then make the changes and insert the desired range into Word.

You could write code to edit the range of the workbook prior to inserting it. The
following edits a regular workbook (not XML, my laptop only has Excel 2000), saves
it with a new name, and then inserts it:

Sub Macro1()
Dim xlWbk As Excel.Workbook
Dim sFileName1 As String

Const sFileName As String = "C:\MyFile.xls"
sFileName1 = Replace(sFileName, ".xls", "_1.xls")

Set xlWbk = GetObject(sFileName)
With xlWbk.worksheets(1)
.Columns(4).Delete
.Rows(10).Delete
End With
xlWbk.SaveAs sFileName1
xlWbk.Close
Set xlWbk = Nothing

Selection.InlineShapes.AddOLEObject _
ClassType:="Excel.Sheet.8", FileName:=sFileName1, _
LinkToFile:=False, DisplayAsIcon:=False

End Sub

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______

raven wrote:

Hi,

I saw an example in this forum to push changes from Excel to Word, and
modified it slightly to inste excel table(OLE tables) from Excel to Word. I
can get it work for inserting the entire table, but would it be possible to
insert just a portion of the table? i.e. i have a huge spreadsheet, but I
want to display just the first two columns in Word....

Thanks you for the response.

Aga

Here is my code from Excel

Public Sub rnn()
Dim rng As Object
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

Dim wddoc As Object
Set wddoc = wdApp.Documents.Add("c:\del.doc")

Dim bkMark As Object
Dim bkMarks As Object
Set bkMarks = wddoc.Bookmarks
For Each bkMark In bkMarks
Debug.Print bkMark.Name
If (bkMark.Name = "img_bk") Then
Set rng = bkMark.Range
End If
Next bkMark



' rng.InlineShapes.AddPicture
"C:\Projects\VisualScreen_2BETA\Code\vs_logo.j pg", , , rng
rng.InlineShapes.AddOLEObject , "c:\someexcel.xml", , , , , , rng

wddoc.SaveAs "c:\del_modified.doc"
wddoc.Close

Set wddoc = Nothing
Set wdApp = Nothing

End Sub



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Inserting a MS Word object into an Excel spreadsheet (2 questions) Phrank Excel Worksheet Functions 1 December 28th 07 02:22 PM
Issues inserting wide Word object into Excel kar Excel Discussion (Misc queries) 0 November 30th 07 10:10 AM
inserting an object in Excel LK Excel Programming 1 April 29th 04 09:25 PM
Inserting an Object in Excel L. Keitelman Excel Programming 0 April 29th 04 08:12 PM
Inserting Object in Excel Footer Bob N. Betts Excel Programming 2 November 7th 03 03:05 AM


All times are GMT +1. The time now is 11:42 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"