yannick63430
XLDnaute Junior
bonjour,
j'ai créé une macro de transfert de tableau d'excel vers word et comme mes tableaux sont de tailles différentes, je dois en adapter certains.
par conséquent, je me suis dits que le langage suivant dans ma macro devait correspondre:
Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
cependant je ne la maîtrise pas totalement et lors de l'exécution de ma macro, erreur.
je pense que cela vient du (1) qui doit faire référence à des tables???? et je voudrais mettre cet ajustement après tout mes coller (réf en rouge)
voici ma macro :
Sub Macro2()
'
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application") 'ouvre session word et le fichier voulu
Set WordDoc = WordApp.Documents.Open("c:\dossier\Note de synthèse.docx") 'ouvre document Word
WordApp.Visible = False
' dupliquer pour éviter surcharge de mémoire
'
ActiveWorkbook.Names("Passif").Delete
ActiveWorkbook.Names("SIG").Delete
ActiveWorkbook.Names("TableauCP").Delete
ActiveWorkbook.Names("TableauCRM").Delete
ActiveWorkbook.Names("Actif").Delete
Sheets(Array("SIG", "transition word", "transition word bis")) _
.Select
Sheets("transition word bis").Activate
Sheets(Array("SIG", "transition word", "transition word bis")) _
.Copy Before:=Sheets(17)
Sheets(Array("SIG (2)", "transition word (2)", _
"transition word bis (2)")).Select
Sheets("transition word bis (2)").Activate
Cells.Select
'copier coller valeur des onglets
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' création des plages de données
Sheets("SIG (2)").Select
ActiveWindow.SmallScroll Down:=-30
Range("A1:I44").Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="SIG", RefersToR1C1:="='SIG (2)'!R1C1:R44C9"
Sheets("transition word (2)").Select
ActiveWindow.SmallScroll Down:=-15
ActiveWorkbook.Names.Add Name:="TableauCP", RefersToR1C1:= _
"='transition word (2)'!R1C5:R37C13"
Sheets("transition word bis (2)").Select
Range("A112").Select
ActiveWorkbook.Names.Add Name:="Actif", RefersToR1C1:= _
"='transition word bis (2)'!R1C1:R12C4"
Range("A1421").Select
ActiveWorkbook.Names.Add Name:="Passif", RefersToR1C1:= _
"='transition word bis (2)'!R14C1:R21C4"
ActiveWindow.SmallScroll Down:=9
Range("A2326").Select
ActiveWorkbook.Names.Add Name:="TableauCRM", RefersToR1C1:= _
"='transition word bis (2)'!R23C1:R26C4"
ActiveWindow.SmallScroll Down:=12
'transfert des tableaux
Sheets("transition word bis (2)").Select
Range("Passif").Copy
WordDoc.Bookmarks("Passif").Range.PasteExcelTable False, False, False
Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
Range("Actif").Copy
WordDoc.Bookmarks("Actif").Range.PasteExcelTable False, False, False
Range("TableauCRM").Copy
WordDoc.Bookmarks("tableauCArtMarge").Range.PasteExcelTable False, False, False
Sheets("SIG (2)").Select
Range("SIG").Copy
WordDoc.Bookmarks("RUBRIQUES").Range.PasteExcelTable False, False, False
Sheets("transition word (2)").Select
Range("TableauCP").Copy
WordDoc.Bookmarks("tableauCP").Range.PasteExcelTable False, False, False
Sheets("transition word bis (2)").Select
'....
End sub
merci d'avance pour votre aide
cordialement
yannick
j'ai créé une macro de transfert de tableau d'excel vers word et comme mes tableaux sont de tailles différentes, je dois en adapter certains.
par conséquent, je me suis dits que le langage suivant dans ma macro devait correspondre:
Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
cependant je ne la maîtrise pas totalement et lors de l'exécution de ma macro, erreur.
je pense que cela vient du (1) qui doit faire référence à des tables???? et je voudrais mettre cet ajustement après tout mes coller (réf en rouge)
voici ma macro :
Sub Macro2()
'
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application") 'ouvre session word et le fichier voulu
Set WordDoc = WordApp.Documents.Open("c:\dossier\Note de synthèse.docx") 'ouvre document Word
WordApp.Visible = False
' dupliquer pour éviter surcharge de mémoire
'
ActiveWorkbook.Names("Passif").Delete
ActiveWorkbook.Names("SIG").Delete
ActiveWorkbook.Names("TableauCP").Delete
ActiveWorkbook.Names("TableauCRM").Delete
ActiveWorkbook.Names("Actif").Delete
Sheets(Array("SIG", "transition word", "transition word bis")) _
.Select
Sheets("transition word bis").Activate
Sheets(Array("SIG", "transition word", "transition word bis")) _
.Copy Before:=Sheets(17)
Sheets(Array("SIG (2)", "transition word (2)", _
"transition word bis (2)")).Select
Sheets("transition word bis (2)").Activate
Cells.Select
'copier coller valeur des onglets
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' création des plages de données
Sheets("SIG (2)").Select
ActiveWindow.SmallScroll Down:=-30
Range("A1:I44").Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="SIG", RefersToR1C1:="='SIG (2)'!R1C1:R44C9"
Sheets("transition word (2)").Select
ActiveWindow.SmallScroll Down:=-15
ActiveWorkbook.Names.Add Name:="TableauCP", RefersToR1C1:= _
"='transition word (2)'!R1C5:R37C13"
Sheets("transition word bis (2)").Select
Range("A112").Select
ActiveWorkbook.Names.Add Name:="Actif", RefersToR1C1:= _
"='transition word bis (2)'!R1C1:R12C4"
Range("A1421").Select
ActiveWorkbook.Names.Add Name:="Passif", RefersToR1C1:= _
"='transition word bis (2)'!R14C1:R21C4"
ActiveWindow.SmallScroll Down:=9
Range("A2326").Select
ActiveWorkbook.Names.Add Name:="TableauCRM", RefersToR1C1:= _
"='transition word bis (2)'!R23C1:R26C4"
ActiveWindow.SmallScroll Down:=12
'transfert des tableaux
Sheets("transition word bis (2)").Select
Range("Passif").Copy
WordDoc.Bookmarks("Passif").Range.PasteExcelTable False, False, False
Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
Range("Actif").Copy
WordDoc.Bookmarks("Actif").Range.PasteExcelTable False, False, False
Range("TableauCRM").Copy
WordDoc.Bookmarks("tableauCArtMarge").Range.PasteExcelTable False, False, False
Sheets("SIG (2)").Select
Range("SIG").Copy
WordDoc.Bookmarks("RUBRIQUES").Range.PasteExcelTable False, False, False
Sheets("transition word (2)").Select
Range("TableauCP").Copy
WordDoc.Bookmarks("tableauCP").Range.PasteExcelTable False, False, False
Sheets("transition word bis (2)").Select
'....
End sub
merci d'avance pour votre aide
cordialement
yannick
Dernière édition: