OVH Cloud OVH Cloud

Copiage d'image excel via macro lancé d'excel

3 réponses
Avatar
Lulu la nantaise
Bonjour à tous,
Je souhaite par le biais d'une macro excel copier des plage de cellules dans
un document word à des endroits définis par des signets.
Le problème est que le 2ème "collage" se place debvant le 1er .... Je ne
comprends pas pourquoi.
Merci de votre aide
Lulu
Ci-dessous la macro :
Sub OLE_Vers_Word()
'
' OLE_Vers_Word Macro
Dim oApp As Word.Application, doc As Word.Document
Dim nf, nom_doc, nom As String

nom = "essai"

nf = ThisWorkbook.Path & "\CP.doc"

Set oApp = CreateObject("Word.Application")

oApp.Visible = True

Set doc = oApp.Documents.Open(nf)

If Err <> 0 Then
MsgBox "Le fichier malettre.doc doit être dans " & ThisWorkbook.Path
Exit Sub
End If

On Error GoTo 0 ' Annule la gestion d'erreur

'Copiage de la page 1
Sheets("1ere page").Visible = True
Sheets("1ere page").Activate
Range("A1:E36").Select
Selection.Copy

doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"


doc.Range.PasteSpecial Link:=False, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:=False

'Copiage tableau de garantie 1
Sheets("Tableaux des garanties").Visible = True
Sheets("Tableaux des garanties").Activate
Range("b6:f42").Select
Selection.Copy

doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="TabGar1"

doc.Range.PasteSpecial Link:=False, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:=False







nom_doc = ThisWorkbook.Path & "\" & nom & ".doc"

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub

3 réponses

Avatar
Anacoluthe
Bonjour !

'Lulu la nantaise' nous a écrit ...
Je souhaite par le biais d'une macro excel copier des plage de cellules dans
un document word à des endroits définis par des signets.
Le problème est que le 2ème "collage" se place debvant le 1er .... Je ne
comprends pas pourquoi.

doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
doc.Range.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse


Doc.Range englobe tout votre document ! écrivez plutôt
Doc.Application.Selection.PasteSpecial ....
(2 fois das votre code !)
C'est mieux ?

Anacoluthe
« Ce n’est pas la colle qui fait le collage. »
- Max ERNST

Avatar
Lulu la nantaise
En fait j'ai changé par :
doc.Bookmarks("Page1").Range.PasteSpecial Link:úlse,
DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:úlse
Et ça marche cool

Merci beaucoup,

Lulu


"Anacoluthe" a écrit dans le message de
news:
Bonjour !

'Lulu la nantaise' nous a écrit ...
Je souhaite par le biais d'une macro excel copier des plage de cellules
dans


un document word à des endroits définis par des signets.
Le problème est que le 2ème "collage" se place debvant le 1er .... Je ne
comprends pas pourquoi.

doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
doc.Range.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse


Doc.Range englobe tout votre document ! écrivez plutôt
Doc.Application.Selection.PasteSpecial ....
(2 fois das votre code !)
C'est mieux ?

Anacoluthe
« Ce n’est pas la colle qui fait le collage. »
- Max ERNST



Avatar
Anacoluthe
Bonjour !

'Lulu la nantaise' nous a écrit ...
En fait j'ai changé par :
doc.Bookmarks("Page1").Range.PasteSpecial Link:úlse,
DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:úlse
Et ça marche cool


:-D

Oui et dans ce cas supprimez même la ligne qui précédait
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
On peut très bien se passer de la Selection !

Anacoluthe
« Ce n’est pas la colle qui fait le collage. »
- Max ERNST