Bonjour,
J'ai créé sous Excel des tableaux et des graphiques que je veux intégrer à un modèle de document Word ou j'ai créé des signets. Cela met énormément de temps. Y aurait-il une solution plus pratique et plus rapide que celle dont j'envoi le code plus bas?
Merci par avance pour votre aide.
Voici le code sous Excel :
********************
Sub import()
'
Dim Temp, canal
On Error Resume Next
Dim numligne As Integer
Dim numligne1 As Integer
Dim numligne2 As Integer
'initialisation des variables
numligne = 2
numligne1 = 3
numligne2 = 20
MyAppID = Shell("c:\Program Files\Microsoft Office\Office10\Winword.exe c:\Indicateurs\Rapport_gestion_IDF.dot", 1)
AppActivate MyAppID
canal = DDEInitiate("Winword", "system")
'DDEExecute canal, "[ouvrirIDF()]"
Sheets("1trim").Select
Worksheets("Fiche indic").Range("e7").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e5").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("b13").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e13").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e15").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("b29").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e29").Copy
DDEExecute canal, "[collerA()]"
Sheets("Bilan").Select
Worksheets("Bilan").Range("b2:h19").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e36").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e37").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Fiche indic").Range("e38").Copy
DDEExecute canal, "[collerA()]"
DDEExecute canal, "[saut()]"
Worksheets("Bilan").Range("j3").Copy
DDEExecute canal, "[collerA()]"
Worksheets("Bilan").Range("j4
7").Copy
DDEExecute canal, "[collerA()]"
Sheets("Annuel").Select
While Range("b" & numligne) <> ""
Worksheets("Annuel").Range("b" & numligne).Copy
DDEExecute canal, "[collerA()]"
numligne = numligne + 19
Worksheets("Annuel").Range("b" & numligne1 & ":h" & numligne2).Copy
DDEExecute canal, "[collerA()]"
DDEExecute canal, "[saut()]"
numligne1 = numligne1 + 19
numligne2 = numligne2 + 19
Wend
Sheets("Annuel").Select
Worksheets("Annuel").ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
DDEExecute canal, "[collerA()]"
Sheets("Bilan").Select
Worksheets("Bilan").ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
DDEExecute canal, "[collerA()]"
DDETerminate (canal)
End Sub
Voici le code sous Word :
********************
Global dest As Integer
========================
Sub ouvrirIDF()
'
' Macro1 Macro
' Macro enregistrée le 04/09/02 par dct0242
'
dest = -1
ChangeFileOpenDirectory "c:\indicateurs\"
Documents.Open FileName:="Rapport_gestion_IDF.dot", _
ConfirmConversions:=False, ReadOnly:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto
End Sub
==================
Sub collerA()
dest = dest + 1
WordBasic.WW7_EditGoTo Destination:="a" & dest
Selection.Paste
End Sub
=========================
Sub enregistre()
'
ActiveDocument.SaveAs FileName:="Rapport_gestion_IDF.doc"
End Sub