Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 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

5 réponses

Avatar
papou
Bonjour Lulu
As-tu essayé la syntaxe suivante :
doc.GoTo What:=wdGoToBookmark, Name:="Page1"
au lieu de :
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
qui me semble un peu bizarre.


Cordialement
Pascal

"Lulu la nantaise" a écrit dans le message de
news:
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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse

'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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse







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

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub





Avatar
Lulu la nantaise
Vla une idée qui me semble bien, j'essaie de suite !
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de
news:
Bonjour Lulu
As-tu essayé la syntaxe suivante :
doc.GoTo What:=wdGoToBookmark, Name:="Page1"
au lieu de :
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
qui me semble un peu bizarre.


Cordialement
Pascal

"Lulu la nantaise" a écrit dans le message
de

news:
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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse

'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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse







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

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub









Avatar
Lulu la nantaise
Ca ne marche pas, ca fait exactement la même chose.
La syntaxe vient de l'enregistreur de macro de Word.
Merci quand même
Lulu
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de
news:
Bonjour Lulu
As-tu essayé la syntaxe suivante :
doc.GoTo What:=wdGoToBookmark, Name:="Page1"
au lieu de :
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
qui me semble un peu bizarre.


Cordialement
Pascal

"Lulu la nantaise" a écrit dans le message
de

news:
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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse

'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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse







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

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub









Avatar
papou
Re
Dans ces conditions essaie donc de modifier la ligne
doc.Range.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse




Par ceci :
Selection.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:úlse

Cordialement
Pascal


"Lulu la nantaise" a écrit dans le message de
news:
Ca ne marche pas, ca fait exactement la même chose.
La syntaxe vient de l'enregistreur de macro de Word.
Merci quand même
Lulu
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de
news:
Bonjour Lulu
As-tu essayé la syntaxe suivante :
doc.GoTo What:=wdGoToBookmark, Name:="Page1"
au lieu de :
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
qui me semble un peu bizarre.


Cordialement
Pascal

"Lulu la nantaise" a écrit dans le message
de

news:
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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse

'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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse







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

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub













Avatar
Lulu la nantaise
J'ai mis
doc.Bookmarks("Page1").Range.PasteSpecial Link:úlse,
DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:úlse

Et ça marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Après 2 jours c'est y pas beau !

Merci beaucoup de ton aide

A plus

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de
news:
Re
Dans ces conditions essaie donc de modifier la ligne
doc.Range.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse




Par ceci :
Selection.PasteSpecial Link:úlse, DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:úlse

Cordialement
Pascal


"Lulu la nantaise" a écrit dans le message
de

news:
Ca ne marche pas, ca fait exactement la même chose.
La syntaxe vient de l'enregistreur de macro de Word.
Merci quand même
Lulu
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de
news:
Bonjour Lulu
As-tu essayé la syntaxe suivante :
doc.GoTo What:=wdGoToBookmark, Name:="Page1"
au lieu de :
doc.Application.Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
qui me semble un peu bizarre.


Cordialement
Pascal

"Lulu la nantaise" a écrit dans le
message



de
news:
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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse

'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:úlse, DataType:=wdPasteOLEObject,
Placement:=wdInLine, DisplayAsIcon:úlse







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

doc.SaveAs nom_doc

oApp.Quit

Set oApp = Nothing
MsgBox "Faut voir"
End Sub