Piloter Word depuis Visual Studio 2010 VB

Signaler
Messages postés
7
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
3 avril 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Avec le code suivant, dans VBA Word 2010, je supprime l'entête et la recrée.

Je voudrais pouvoir faire la même chose directement de visual studio après avoir chargé le document Word.

Pouvez-vous m'aider ?

Voici le code Word

*************************************
Sub CreationEntete()
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.WholeStory
Selection.Delete
With ActiveDocument.PageSetup
.TopMargin = CentimetersToPoints(1.5)
.BottomMargin = CentimetersToPoints(1.5)
.LeftMargin = CentimetersToPoints(1.75)
.RightMargin = CentimetersToPoints(1.75)
.Gutter = CentimetersToPoints(0)
.HeaderDistance = CentimetersToPoints(0.8)
.FooterDistance = CentimetersToPoints(0.7)
.DifferentFirstPageHeaderFooter = False
End With
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Cells(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.WordWrap = True
.FitText = False
End With
Selection.Tables(1).Cell(1, 1).Width = CentimetersToPoints(4.7)
Selection.Tables(1).Cell(1, 1).Height = CentimetersToPoints(1.8) '2.73
Selection.Tables(1).Cell(1, 2).Width = CentimetersToPoints(9.14)
Selection.Tables(1).Cell(1, 3).Width = CentimetersToPoints(4.7)
Selection.Tables(1).Cell(2, 3).Delete
Selection.Tables(1).Cell(2, 2).Delete
Selection.Tables(1).Cell(2, 1).Width = CentimetersToPoints(18.54)
Selection.Tables(1).Cell(2, 1).Height = CentimetersToPoints(0.24)
Selection.Tables(1).Cell(2, 1).Select
With Selection
.Font.Name = "Calibri"
.Font.Size = 5
.Text = "Ce document est propriété de xxx - yyy SA. Il ne peut être transmis, copié, utilisé ou exécuté par des tiers sans l'autorisation écrite de la Direction de xxx-yyy SA"
.Paragraphs.Alignment = wdAlignParagraphCenter
End With
Selection.Tables(1).Cell(1, 1).Select
Selection.InlineShapes.AddPicture FileName:= _
"R:\SMI\Nouveau-Logo-horizontal.PNG" _
, linkToFile:=False, saveWithDocument:=True
Selection.ParagraphFormat.SpaceBefore = 3
Selection.Font.Name = "Calibri"
Selection.Font.Size = 8
Selection.TypeParagraph
Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(1.71), _
Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces
Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(3.5) _
, Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces
Selection.TypeText Text:="Crée-par :"
Selection.TypeText Text:=vbTab & "18.12.11" & vbTab & "JPC"
Selection.TypeParagraph
Selection.ParagraphFormat.SpaceBefore = 0
Selection.TypeText Text:="Révisé-par :"
Selection.TypeText Text:=vbTab & "19.12.11" & vbTab & "ANC"
Selection.TypeParagraph
Selection.TypeText Text:="Validé-par :"
Selection.TypeText Text:=vbTab & "20.12.11" & vbTab & "ROA"
Selection.TypeParagraph
Selection.TypeText Text:="Distribué :"
Selection.TypeText Text:=vbTab & "ROA / ANC / JPC / FRS / ROA / FEV / SDF / QWE / XCV / ERW / QWE / XCV / ERW"
Selection.Tables(1).Cell(1, 2).Select
Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(2.04), _
Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(6.3), _
Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
Selection.Font.Name = "Calibri"
Selection.Font.Size = 12
Selection.Font.Bold = wdToggle
Selection.TypeText Text:=vbTab & "Essais 1" & vbTab & "Essais 2"
Selection.TypeParagraph
Selection.TypeParagraph
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText Text:=vbTab & "Essais essais essais essais essais essais essais essais essais 3"
ActiveDocument.Sections(1).Headers(1).Range.Tables(1).Cell(1, 3).Range.ParagraphFormat.TabStops.Add _
Position:=CentimetersToPoints(0.8), Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
ActiveDocument.Sections(1).Headers(1).Range.Tables(1).Cell(1, 3).Range.ParagraphFormat.TabStops.Add _
Position:=CentimetersToPoints(1.8), Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
With ActiveDocument.Sections(1).Headers(1).Range.Tables(1).Cell(1, 3).Range
.Font.Name = "Calibri"
.Font.Size = 16
.Font.Bold = wdToggle
.Text = vbTab & "ASD" & vbTab & "Essais"
End With

ActiveDocument.Sections(1).Headers(1).Range.Tables(1).Cell(1, 3).Range.InlineShapes.AddPicture _
FileName:="R:\SMI\Logo Process critique (v3).jpg", linkToFile:=False, saveWithDocument:=True

With ActiveDocument.Sections(1).Headers(1).Range.Tables(1).Cell(1, 3).Range.InlineShapes(1)
.Height = 21
.Width = 36.75
.ConvertToShape
End With
With ActiveDocument.Sections(1).Headers(1).Shapes(1)
.Top = 1.6
.Left = 90
.ZOrder msoBringInFrontOfText
End With


End Sub
***************************************************
Ce code fonctionne très bien dans Word VBA

Quand je suis dans Visual Studio 2010, j'arrive à charger mon document

Code VB
*************************************
Dim oWrd As Object
oWrd = CreateObject("Word.Application")
oWrd.visible = True
oWrd.documents.open("P:\Developp\vb-word.docm")
*************************************

et après je sèche.

Avez-vous quelque chose à me proposer ? merci

3 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Bonjour,

Piloter, c'est piloter,

Que ce soit Word ou Excel, seuls changent le nom de l'application et les objets de l'application à piloter !
Voilà un exemple pour "piloter" Excel ===>> à toi d'adapter pour Word !
Le principe général sera rigoureusement le même !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Pardon ! j'ai oublié le lien ===>>>
PILOTER-EXCEL-SIMPLEMENT


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
J'ai par contre quelques inquiétudes en lisant ton code VBA (depuis VBA, donc, sans même piloter)
Tu y vas à grands renforts alourdissants de Select pour ensuite travailler sur des sélections.
Il serait sans doute astucieux de procéder autrement (avant même de parler "pilotage"). Mais c'est là une autre affaire, qui devrait, en ce qui concerne cet aspect, être traitée à la rubrique VBA de ce forum, bien évidemment ...


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient