Menu

Créer et remplire un fichier word avec Visual basic [Résolu/Fermé]

Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
- - Dernière réponse : kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
- 23 avril 2016 à 18:42
Bonjour,

j'ai fait des recherche pour le sujet suivant mais j'ai trouver que des postes pour Visual basic 6 (c'est ancien)
moi ce que je veux et comment créer et remplir un fichier Word avec Visual basic 2010 express
par exemple :
le texte dans texteBox1 sera dans la 1er ligne du fichier word
le texte dans texteBox2 sera dans la 2ème ligne du fichier word
le texte dans texteBox3 sera dans la 3ème ligne du fichier word
... ainsi de suite
aussi comment créer et remplire un tableau dans word (bien sur avec visual basic)
aidez moi s'il vous plaît
Merci d’avance pour votre aide



Afficher la suite 

8 réponses

Messages postés
25767
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 juin 2019
1660
0
Merci
Bonjour,

Tu peux t'inspirer de ceci par exemple :
http://codes-sources.commentcamarche.net/source/51010-piloter-word-via-microsoft-office-interop-word (en C# mais facilement transposable en VB.NET )

Sinon, tu as ça : https://support.microsoft.com/fr-fr/kb/316383

ou encore : https://openclassrooms.com/forum/sujet/vb-net-creation-ou-modification-d-un-document-word


Bref... il te suffit de taper dans ton moteur de recherche : "VB.NET WORD" ... et tu trouveras plein d'exemples....


kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
Merci je vais y jeter un œil
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
jordane45
Messages postés
25767
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 juin 2019
1660 -
Hello,
Oui je me souvenais que tu avais posté un truc du genre... mais je n'avais pas remis la main dessus... :-)
Whismeril
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345 -
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
0
Merci
j'ai consulté les liens que vous m'avez envoyés, d'ailleurs je vous remercie pour votre aide
j'ai essayé de construire mon propre code mais malheureusement c'est une catastrophe (je vous évite de dire " on ne peux même considérez ça comme un code" lol)
quand j'exécuté le logiciel il est vraiment très lent et il y a une erreur sur le code suivant :

oWord.Selection.GoTo(Name:="SignetNom")

l'erreur :
La référence d'objet n'est pas définie à une instance d'un objet

Voici le code que j'ai créé :


Option Strict On
Option Explicit On
Imports System.IO
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Public Class Form1
    Dim ValeurNom As String
    Dim ValeurPrenom As String
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        ValeurNom = Me.TextBox1.Text
    End Sub
    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
        ValeurPrenom = Me.TextBox2.Text
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oWord As New Word.Application
        Dim sfd As New SaveFileDialog

        sfd.Filter = "Fichier Word|*.docx"
        sfd.FileName = "Calcul"
        sfd.Title = "Enregistrer sous"
        If sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
            TextBox3.Text = sfd.FileName

            Dim Sw As New StreamWriter(TextBox3.Text)
        End If
       
        oWord.Visible = False
        oWord.Selection.GoTo(Name:="SignetNom")
        oWord.Selection.Bookmarks("SignetNom").Range.Text = ValeurNom
        oWord.Selection.GoTo(Name:="signetPrenom")
        oWord.Selection.Bookmarks("signetPrenom").Range.Text = ValeurPrenom
        
        oWord.ActiveDocument.Close()
        oWord.Visible = False
        oWord.Quit()

       
    End Sub
End Class


Merci d’avance pour votre aide et désolé pour le dérangement

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
0
Merci
Bonsoir,

déjà, ni dans mon code ni dans celui du Pivert, il n'y a de Goto.
Je ne dis pas que ça ne marche pas, mais perso je n'ai pas essayé cette méthode pour atteindre un point du document et si le pivert l'a fait il ne l'a pas montré.

Ensuite tu fais un Goto, et après un Bookmark("") sur une sélection, mais tu n'as rien sélectionné. Donc l'objet qui n'existe pas c'est peut être cette sélection.
Ou alors le signet SignetNom qui n'existe pas.

Si tu regardes mon code, les signets je les récupères sur le document.

kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
j'ai pris juste une partie des codes que vous m'avait montrer
j'ai fait des recherche sur google sur VB.NET WORD comme il a suggéré jordane45,
et j'ai trouvé le code qui se rapproche le plus de ce que je veux ici :
http://codes-sources.commentcamarche.net/forum/affich-10030730-manipulation-d-un-document-word-avec-vb-net.
c'est cs_Le Pivert qui à aider a l'écrire

moi ce que je veux et que qu'une SaveFileDialog s'affiche quand je clique sur un bouton et je tape le nom du fichier Word que je veux créer

et aussi que texte qui se trouve dans la TextBox 1 ,2 ,3 ... ect soit enregistré dedans
et si c'est possible un tableau soit créer et que je puis le remplacer de la même façon.
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
0
Merci
Ok, je ne me souvenais plus de cette discussion.

Alors est ce que le signet SignetNom existe bien dans ton document Word?

Pour les tableaux, il y en a dans mes 2 sources.
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
Alors est ce que le signet SignetNom existe bien dans ton document Word? 

à propos de ça, je ne sais pas pourquoi il a ajouter "SignetNom", ça sert à quoi ?
Pour les tableaux, il y en a dans mes 2 sources. 

tu veut dire ici :
http://codes-sources.commentcamarche.net/source/101341-exemple-d-utilisation-de-la-librairie-docx
le projet se télécharge mais il ne marche pas, il y a une erreur :

Le fichier sélectionné est un fichier solution, mais il a été crée avec une version plus récente de cette application et ne peut pas être ouvert.

moi j'utilise Visual Basic 2010 express, normalement c'est la même version

où tu veux parler de celui-là :
http://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
je ne vois aucun rapport avec les tableaux.
Whismeril
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345 -
moi j'utilise Visual Basic 2010 express, normalement c'est la même version

Non je l'ai fait avec 2013


http://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

non plus ce code est du Pivert.

je parle du premier donné par Jordane là
http://www.commentcamarche.net/forum/affich-33415553-creer-et-remplire-un-fichier-word-avec-visual-basic#1

Enfin un signet est une ancre, une balise dans un fichier word qui permet de se positionner à un endroit précis pour y faire quelque chose. C'est la base de l'utilisation des modèles.
Avant de tester des codes pour piloter Word, il faut connaitre word.....
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
de ce site : https://support.microsoft.com/fr-fr/kb/316383
donner par jordane45 (Merci jordane45 )
j'ai pu trouvé ce que je cherche, voici le code :

Imports Word = Microsoft.Office.Interop.Word
Public Class Form1
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
Dim oRng As Word.Range
Dim oShape As Word.InlineShape
Dim oChart As Object
Dim Pos As Double

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Démarrez Word et ouvrez le modèle de document.
oWord = CreateObject("Word.Application")
oWord.Visible = True
oDoc = oWord.Documents.Add


'Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
oPara1.Range.Text = TextBox7.Text
'Blond gras Italic type d'écriture
oPara1.Range.Font.Bold = True
oPara1.Range.Font.Italic = True
oPara1.Range.Font.Name = "Microsoft Sans Serif"
'l'espace entre les lignes aprés le text
oPara1.Format.SpaceAfter = 10 '24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter()

oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
oPara2.Range.Text = TextBox8.Text
'Blond gras Italic type d'écriture
'ilfaux désactiver le gras du 1er opara1 si tu ne veut pas que opara 2 soit rn gras oPara1.Range.Font.Bold = False
oPara2.Range.Font.Italic = True
oPara1.Range.Font.Bold = False
'l'espace entre les lignes aprés le text
oPara2.Format.SpaceAfter = 15 '4 espacement pt après le paragraphe.
'inser le paragraphe
oPara2.Range.InsertParagraphAfter()


'Insérez tableau de 3 lignes x 3 colonnes, le remplir avec des données, et de faire la première rangée
'Gras et italique.
Dim r As Integer, c As Integer
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 2)

oTable.Range.ParagraphFormat.SpaceAfter = 6
oTable.Cell(1, 1).Range.Text = TextBox1.Text
oTable.Cell(2, 1).Range.Text = TextBox2.Text
oTable.Cell(3, 1).Range.Text = TextBox3.Text
oTable.Cell(1, 2).Range.Text = TextBox4.Text
oTable.Cell(2, 2).Range.Text = TextBox5.Text
oTable.Cell(3, 2).Range.Text = TextBox6.Text


oTable.Rows.Item(1).Range.Font.Bold = True
oTable.Rows.Item(1).Range.Font.Italic = True
oTable.Cell(1, 1).Range.Font.Italic = True
oTable.Cell(2, 1).Range.Font.Italic = True
oTable.Cell(3, 1).Range.Font.Italic = True
'Gardez l'insertion de texte. Lorsque vous arrivez à 7 pouces du haut de la
'Document, insérez un saut de page.
Pos = oWord.InchesToPoints(7)
oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter()
Do
oRng = oDoc.Bookmarks.Item("\endofdoc").Range
oRng.ParagraphFormat.SpaceAfter = 6
oRng.InsertAfter("")
oRng.InsertParagraphAfter()
Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
oRng.InsertAfter("Nous sommes maintenant à la page 2. Voici ma carte: ")
oRng.InsertParagraphAfter()

End Sub
End Class


mais j'ai besoin de faire quelques réglages dans le code :
1. j'ai essayé de métré le texte de la première colonne en gras en utilisant le code suivant : oTable.Column.Item(1).Range.Font.Bold = True
au lieu :

oTable.Cell(1, 1).Range.Font.Italic = True
oTable.Cell(2, 1).Range.Font.Italic = True
oTable.Cell(3, 1).Range.Font.Italic = True

mais ça ne marche pas

2.changer la couleur du texte et du fond d'une cellule

3.la couleur du bordure du tableau et transparente, je veux qu'elle soit noir

4.Centre le texte horizontalement et verticalement dans la cellule

5. je veux qu'une boite de dialogue s'affiche (SaveFileDialog) pour me demander où je veux enregistrer le fichier Word

aidez-moi s'il vous plaît et merci d'avance
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
0
Merci
Bonsoir,

on ne peut pas tester ton code, tu n'as pas fourni CreateObject

Ensuite, il suffit de passer la souris sur Italic et Bold, d'attendre que l'info bulle s'affiche pour voir que ce sont des entiers.
A priori, selon cette page
https://social.msdn.microsoft.com/Forums/vstudio/en-US/ec35e23b-22a5-4ffa-95cc-2d5b90d86dd2/make-some-text-bold-in-ms-word-using-vbnet?forum=vsto

Ce serait -1 pour true

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Whismeril
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345 -
Ha et cette ligne ne passe pas avec Option Strict ON, que tu avais bien mis dans ton premier exemple de code

Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)


Tu peux remplacer par
        Loop While Pos >= Convert.ToDouble(oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage))
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
je t'envoie un exemple du programme de calcul pour mon travail (le code est assez long d'ailleurs),je veux pouvoir enregistrer les calculs (pour éviter de répéter les calcules a chaque fois), je veux les enregistrer comme une note de calcul
j'ai déjà pue les enregistrer dans un fichier excelle et un fichier texte, beaucoup de personne mon aider et je leur suis reconnaissant (Merci beaucoup).
alors s'il te plait aide moi à le terminer j'en ai vraiment besoin vraiment pour mon travail et je te serai vraiment reconnaissant.

http://www.cjoint.com/c/FDuulkvQxoG
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
0
Merci
Bonsoir,

je ne vais pas télécharger ton projet entier.
J'ai juste besoin de voir comment tu initialises ton fichier word.
Et pour une fois utilise correctement la coloration syntaxique, ça évitera à un modérateur de corriger encore une fois tes messages.
Regarde plus haut, à chaque fois ils t'ont mis un lien vers la procédure
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
Bonjour whismeril comment ça va
je ne veux pas être désagréable ou impatient,mais est-ce que tu as terminé de corriger et améliorer le code que je t'ai envoyé. .
Whismeril
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345 -
Non, si tu lis mon précédent message tu sauras pourquoi. Et vu ton intervention, je me désabonne de cette discussion.
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
si j'étais désagréable alors je te demande pardon
merci de m'avoir aidée jusqu'à la
Messages postés
13404
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
345
0
Merci
Ce n'est pas un MP qui me fera me pencher à nouveau sur ton cas.
Comme tout le monde ici, je suis bénévole et n'ai pas temps à perdre avec ceux qui ne font pas un minimum d'efforts.
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
je sais que tu partage ton savoir et c'est une bonne chose, mais dire que je ne fais pas d'effort est faux, car tu ne sais pasà quel point je fais des recherches pour trouver une solution qui me convient, je teste beaucoup de codes.
pour toi c'est peut-être facile ce genre de sujet, mais pour moi qui vient juste de débuter le langage de visual basic, ce n'est pas si simple
N.B : ce MP n'est pas pour ce que tu crois
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1 -
Bonjour,
avec beaucoup de travail j'ai pus terminer totalement le code le voici (le code est assez long) :


Imports System.IO
Imports Word = Microsoft.Office.Interop.Word

Public Class Form1

Dim oWord As New Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph, oPara5 As Word.Paragraph
Dim oRng As Word.Range
Dim cheminPlusFichier As String
Dim Pos As Double

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
'Démarrez Word et ouvrez le modèle de document.
SaveFileDialog1.Filter = "Document Word (*.docx)|*.docx"
SaveFileDialog1.Title = "Enregistrer sous"
SaveFileDialog1.FileName = "test"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then 'si l'utilisateur a bien cliqué sur ok
cheminPlusFichier = SaveFileDialog1.FileName
System.IO.File.WriteAllBytes(cheminPlusFichier, My.Resources.Note_de_Calcul)
End If
cheminPlusFichier = SaveFileDialog1.FileName
oDoc = oWord.Documents.Open(SaveFileDialog1.FileName)

oDoc.Application.DisplayAlerts = False 'supprime les messages d'alerte
'cacher le fichier
oWord.Visible = False

'************************************** Texte ****************************************************
'Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
'inserer le text qui se trouve dans la textBox 7
oPara1.Range.Text = TextBox7.Text
'Mettre le texte en gras
oPara1.Range.Font.Bold = True
'Mettre le texte en Italic
oPara1.Range.Font.Italic = True
'Mettre le texte en centre de la ligne
oPara1.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter
'Donner au text la police Georgia
oPara1.Range.Font.Name = "Georgia"
'Colorer le texte avec la couleur rouge
oPara1.Range.Font.Color = WdColor.wdColorRed
'l'espace entre les lignes aprés le text
oPara1.Format.SpaceAfter = 10 '10 pt spacing after paragraph.
'Inserer le paragraphe dans la 1er ligne du document Word
oPara1.Range.InsertParagraphAfter()
'*****************************************************************************************
oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
'inserer le text qui se trouve dans la textBox 8
oPara2.Range.Text = TextBox8.Text

' désactiver le text gras pour le 2ème texte
oPara2.Range.Font.Bold = False
' désactiver le text Italic pour le 2ème texte
oPara2.Range.Font.Italic = False
'Mettre le texte a gaauche dans la ligne
oPara2.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft
'Donner au text la police Georgia
oPara2.Range.Font.Name = "Georgia"
'Colorer le texte avec la couleur noir
oPara2.Range.Font.Color = WdColor.wdColorBlack
'l'espace entre les lignes aprés le text
oPara2.Format.SpaceAfter = 15 '15 espacement pt après le paragraphe.
'inser le paragraphe
oPara2.Range.InsertParagraphAfter()
'*****************************************************************************************
'********************************************************************************************************


'**************************************************** Tableau ****************************************************
'Insérez tableau de 3 lignes x 3 colonnes, le remplir avec des données, et de faire la première rangée
'Gras et italique.
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 2)

oTable.Range.ParagraphFormat.SpaceAfter = 6
'insérer dans les cellules le texte qui se trouve dans les textbox de 1 à 6
oTable.Cell(1, 1).Range.Text = TextBox1.Text
oTable.Cell(2, 1).Range.Text = TextBox2.Text
oTable.Cell(3, 1).Range.Text = TextBox3.Text
oTable.Cell(1, 2).Range.Text = TextBox4.Text
oTable.Cell(2, 2).Range.Text = TextBox5.Text
oTable.Cell(3, 2).Range.Text = TextBox6.Text

'Mettre la 1er ligne du tableau en gras
oTable.Rows.Item(1).Range.Font.Bold = True
'Mettre la 1er ligne du tableau en Italic
oTable.Rows.Item(1).Range.Font.Italic = True
'Mettre les cellule de la 1er colonne du tableau en gras et italic une police " Georgia" et une couleur Gris
' et un fond rouge
For i = 1 To 3
oTable.Cell(i, 1).Range.Font.Italic = True
oTable.Cell(i, 1).Range.Font.Bold = True
oTable.Cell(i, 1).Range.Font.Name = "Georgia"
'Colorer le texte avec la couleur Bleu
oTable.Cell(i, 1).Range.Font.Color = WdColor.wdColorBlueGray
oTable.Cell(i, 1).Range.Shading.BackgroundPatternColor = WdColor.wdColorRed
Next


'le type des bordures au centre "Simple"
oTable.Borders.InsideLineStyle = WdLineStyle.wdLineStyleSingle
' Bordure Haut du tableau
With oTable.Borders(WdBorderType.wdBorderTop)
'type de bordure (Bordure simple).
.LineStyle = WdLineStyle.wdLineStyleSingle
'Donner au bord une épaisseur de 100 pt
.LineWidth = WdLineWidth.wdLineWidth100pt
'Donner au bord d'une couleur verte
.Color = WdColor.wdColorDarkGreen
End With
' Bordure gauche du tableau
With oTable.Borders(WdBorderType.wdBorderLeft)
'type de bordure (Bordure simple).
.LineStyle = WdLineStyle.wdLineStyleSingle
'Donner au bord une épaisseur de 100 pt
.LineWidth = WdLineWidth.wdLineWidth100pt
'Donner au bord d'une couleur verte
.Color = WdColor.wdColorDarkGreen
End With
' Bordure bas du tableau
With oTable.Borders(WdBorderType.wdBorderBottom)
'type de bordure (Bordure simple).
.LineStyle = WdLineStyle.wdLineStyleSingle
'Donner au bord une épaisseur de 100 pt
.LineWidth = WdLineWidth.wdLineWidth100pt
'Donner au bord d'une couleur verte
.Color = WdColor.wdColorDarkGreen
End With
' Bordure droite du tableau
With oTable.Borders(WdBorderType.wdBorderRight)
'type de bordure (Bordure simple).
.LineStyle = WdLineStyle.wdLineStyleSingle
'Donner au bord une épaisseur de 100 pt
.LineWidth = WdLineWidth.wdLineWidth100pt
'Donner au bord d'une couleur verte
.Color = WdColor.wdColorDarkGreen
End With
'espacement du texte dans le tableau
With oTable.Range.ParagraphFormat
.SpaceBefore = 0.5
.SpaceBeforeAuto = False
.SpaceAfter = 0.5
.SpaceAfterAuto = False
.LineSpacingRule = WdLineSpacing.wdLineSpaceAtLeast
.LineSpacing = 12
.Alignment = WdParagraphAlignment.wdAlignParagraphCenter
.WidowControl = True
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True

.OutlineLevel = WdOutlineLevel.wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0.5
.CharacterUnitRightIndent = 0.5
.CharacterUnitFirstLineIndent = 0.5
.LineUnitBefore = 0.5
.LineUnitAfter = 0.5
.MirrorIndents = False
.TextboxTightWrap = WdTextboxTightWrap.wdTightNone
.ReadingOrder = WdReadingOrder.wdReadingOrderLtr
End With
'Mettre le texte au centre horizontalement.
oTable.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter
'Mettre le texte au centre Verticalement.
oTable.Range.Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter

'************************************** Texte ****************************************************
'Insert a paragraph at the beginning of the document.
oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
'inserer le text qui se trouve dans la textBox 9
oPara3.Range.Text = TextBox9.Text
'Mettre le texte en gras
oPara3.Range.Font.Bold = False
'Mettre le texte en Italic
oPara3.Range.Font.Italic = False
'Mettre le texte en centre de la ligne
oPara3.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft
'Donner au text la police Georgia
oPara3.Range.Font.Name = "Georgia"
'Colorer le texte avec la couleur rouge
oPara3.Range.Font.Color = WdColor.wdColorRed
'l'espace entre les lignes aprés le text
oPara3.Format.SpaceAfter = 10 '10 pt spacing after paragraph.
'Inserer le paragraphe dans la 1er ligne du document Word
oPara3.Range.InsertParagraphAfter()
'*****************************************************************************************

'********************************* Image *********************************************
'Insérer une dans le document word.
oPara5 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)

oPara5.Range.InlineShapes.AddPicture(FileName:="C:\Users\Mekki\Desktop\Image00006.png", LinkToFile:=False, _
SaveWithDocument:=True)

'************************************** Texte ****************************************************

oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
'inserer le text qui se trouve dans la textBox 10
oPara4.Range.Text = TextBox9.Text
' désactiver le text gras pour le 2ème texte
oPara4.Range.Font.Bold = False
' désactiver le text Italic pour le 2ème texte
oPara4.Range.Font.Italic = False
'Mettre le texte a gaauche dans la ligne
oPara4.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft
'Donner au text la police Georgia
oPara4.Range.Font.Name = "Georgia"
'Colorer le texte avec la couleur noir
oPara4.Range.Font.Color = WdColor.wdColorBlack
'l'espace entre les lignes aprés le text
oPara4.Format.SpaceAfter = 15 '15 espacement pt après le paragraphe.
'inser le paragraphe
oPara4.Range.InsertParagraphAfter()
'***********************************************************************************************
'Gardez l'insertion de texte. Lorsque vous arrivez à 7 pouces du haut de la
'Document, insérez un saut de page.
Pos = oWord.InchesToPoints(7)
oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter()
Do
oRng = oDoc.Bookmarks.Item("\endofdoc").Range
oRng.ParagraphFormat.SpaceAfter = 6
oRng.InsertAfter("")
oRng.InsertParagraphAfter()
Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
oRng.InsertAfter("Nous sommes maintenant à la page 2. Voici ma carte: ")
oRng.InsertParagraphAfter()
oWord.ActiveDocument.Save() ' Sauvegarde du document

oWord.Quit() ' Ferme Word
oWord = Nothing ' Ferme Word
End Sub
End Class


je vous explique comment il fonctionne :
1. écrire un paragraphe dans la 1er ligne;
2. écrire un paragraphe dans la 2ème ligne ligne;
3. Créer un tableau et le remplir;
4. écrire un paragraphe dans la 4ème ligne ligne;
5. insérer une image;
6. écrire un paragraphe dans la 6ème ligne ligne;
7. Faire un saut de page;
8. Enregistrer le document Word avec un nom : test.docx.

il me manque juste une chose (ou plutôt je veux changer un code )
si c'est possible j'aimerai que au lieu d'importer un image de l'ordinateur et l'insérer dans le document Word avec le code suivant :

 oPara5 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)      oPara5.Range.InlineShapes.AddPicture(FileName:="C:\Users\...\Desktop\Image00006.png", LinkToFile:=False, _
SaveWithDocument:=True)


je veux qu'il enregistre un PictureBox dans le document Word, j'ai beau chercher je n'ai rien trouvé (même si j'ai chercher dans des dizaines de page), alors si quelqu'un a un proposition, je serais tout oui
merci