Créer et remplire un fichier word avec Visual basic
Résolu/Fermé
kikou93
Messages postés
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
-
17 avril 2016 à 22:07
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 23 avril 2016 à 18:42
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 23 avril 2016 à 18:42
A voir également:
- Créer et remplire un fichier word avec Visual basic
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Fichier rar - Guide
- Créer un organigramme sur word - Guide
8 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
17 avril 2016 à 22:13
17 avril 2016 à 22:13
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....
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....
Utilisateur anonyme
17 avril 2016 à 23:50
17 avril 2016 à 23:50
Bonsoir Jordane
Rebonsoir Kikou
Il y a ça aussi
https://codes-sources.commentcamarche.net/source/101341-exemple-d-utilisation-de-la-librairie-docx
Rebonsoir Kikou
Il y a ça aussi
https://codes-sources.commentcamarche.net/source/101341-exemple-d-utilisation-de-la-librairie-docx
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
17 avril 2016 à 23:52
17 avril 2016 à 23:52
Hello,
Oui je me souvenais que tu avais posté un truc du genre... mais je n'avais pas remis la main dessus... :-)
Oui je me souvenais que tu avais posté un truc du genre... mais je n'avais pas remis la main dessus... :-)
Et le pivert en a fait une en VB.Net via l'API
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
kikou93
Messages postés
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
Modifié par jordane45 le 18/04/2016 à 20:23
Modifié par jordane45 le 18/04/2016 à 20:23
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 :
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éé :
Merci d’avance pour votre aide et désolé pour le dérangement
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. |
Utilisateur anonyme
18 avril 2016 à 22:22
18 avril 2016 à 22:22
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.
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
Modifié par kikou93 le 18/04/2016 à 23:52
Modifié par kikou93 le 18/04/2016 à 23:52
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
19 avril 2016 à 07:54
19 avril 2016 à 07:54
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.
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
19 avril 2016 à 08:57
19 avril 2016 à 08:57
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.
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.....
kikou93
Messages postés
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
Modifié par kikou93 le 19/04/2016 à 19:00
Modifié par kikou93 le 19/04/2016 à 19:00
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 :
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
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
Utilisateur anonyme
Modifié par Whismeril le 20/04/2016 à 20:51
Modifié par Whismeril le 20/04/2016 à 20:51
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
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
Ha et cette ligne ne passe pas avec Option Strict ON, que tu avais bien mis dans ton premier exemple de code
Tu peux remplacer par
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
20 avril 2016 à 22:15
20 avril 2016 à 22:15
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
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
Utilisateur anonyme
20 avril 2016 à 23:34
20 avril 2016 à 23:34
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
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
22 avril 2016 à 09:56
22 avril 2016 à 09:56
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é. .
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é. .
kikou93
Messages postés
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
22 avril 2016 à 11:26
22 avril 2016 à 11:26
si j'étais désagréable alors je te demande pardon
merci de m'avoir aidée jusqu'à la
merci de m'avoir aidée jusqu'à la
Utilisateur anonyme
22 avril 2016 à 18:00
22 avril 2016 à 18:00
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.
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
22 avril 2016 à 18:20
22 avril 2016 à 18:20
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
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
416
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
23 avril 2016 à 18:42
23 avril 2016 à 18:42
Bonjour,
avec beaucoup de travail j'ai pus terminer totalement le code le voici (le code est assez long) :
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 :
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
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
17 avril 2016 à 22:41