Créer et remplire un fichier word avec Visual basic

Résolu
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



--
Comment ça marche c'est cool! 
      1000 Merci les Amis

8 réponses

  1. Modérateur
    Bonjour,

    Tu peux t'inspirer de ceci par exemple :
    https://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/help/316383/how-to-automate-word-from-visual-basic-net-to-create-a-new-document

    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....

    0
    1. Merci je vais y jeter un œil
      0
  2. 0
    1. Modérateur
      Hello,
      Oui je me souvenais que tu avais posté un truc du genre... mais je n'avais pas remis la main dessus... :-)
      0
  3. 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.
    0
    1. 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.

      0
      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 :
        https://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.
        0
    2. 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.
      0
      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 :
        https://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à :
        https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
        je ne vois aucun rapport avec les tableaux.
        0
      2. 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à
        https://forums.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.....
        0
      3. 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
        0
    3. 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
      0
      1. 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))
        
        0
      2. 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.

        https://www.cjoint.com/c/FDuulkvQxoG
        0
    4. 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
      0
      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é. .
        0
      2. Non, si tu lis mon précédent message tu sauras pourquoi. Et vu ton intervention, je me désabonne de cette discussion.
        0
      3. si j'étais désagréable alors je te demande pardon
        merci de m'avoir aidée jusqu'à la
        0
    5. 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.
      0
      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
        0
      2. 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
        0