Vb.Net Enregistrer une pictureBox directement dans un doc word

Résolu/Fermé
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - Modifié par kikou93 le 23/04/2016 à 23:02
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 25 avril 2016 à 19:23
Bonjour,

Je sais que je pose beaucoup de questions ces temps-ci et j'espère n'importuner personne par mes questions ...

J'ai à nouveau un écueil à évoquer avec ceux qui veulent bien y prendre part. je veux enregistrer une PictureBox dans un document Word , j'ai beau chercher je n'ai rien trouvé (même si j'ai chercher dans des dizaines de page) :

j'ai bien essais de trouver une solution, alors j'ai crée le code suivant :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
My.Computer.FileSystem.CreateDirectory("C:\Répertoire")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Image.Save("C:\Répertoire\image.bmp")
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
My.Computer.FileSystem.DeleteDirectory("C:\Répertoire", FileIO.DeleteDirectoryOption.DeleteAllContents)
End Sub

après j'utilise le code suivant pour enregistrer cette image dans un document word (Remarque : ce n'ai pas le code complet c'est juste la partie qui m'intéresse)
oPara5 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)      oPara5.Range.InlineShapes.AddPicture(FileName:="C:\Users\...\Desktop\Image00006.png", LinkToFile:=False, _
SaveWithDocument:=True)

Remarque : j'ai crée le dossier du nom "répertoire", dont le cas ou j'enregistre beaucoup d'image et je veux les supprimer alors je supprime le dossier "répertoire" avec lui tout les image enregistrer.

mais ce que m'a paru assez long pour enregistrer un seul pictureBox dans un document word
alors si quelqu'un a une meilleur solution je suis prenant
Merci d’avance pour votre aide



Comment ça marche c'est cool! 
      1000 Merci les Amis
A voir également:

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 avril 2016 à 19:04
Voilà la copie du code que je t'ai indiqué:

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Imports System.IO
Public Class Result
#Region "Déclarations"
    Dim fichier As String = System.Windows.Forms.Application.StartupPath & "\monimage.jpg"
#End Region
#Region "Exportations"
    Private Sub ToolStripWord_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripWord.Click
        Dim reponse As DialogResult = MessageBox.Show("Ouvrir un document existant: Oui" & Environment.NewLine & "Création d'un document: Non", _
"Choix du document de reception", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)
        'enregistrement image 
        picresult.Image.Save(fichier, System.Drawing.Imaging.ImageFormat.Jpeg)
        'Créer une instance de word
        Dim oWord As New Word.Application
        If reponse = vbYes Then
            'ouverture document Word
            Dim dlgFile As New OpenFileDialog
            With dlgFile
                .Title = "Choisissez votre document"
                .Filter = "Fichiers Word (*.docx,*.doc)|*.docx;*.doc"
                .FilterIndex = 1
                .RestoreDirectory = False
                If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    oWord.Documents.Open(.FileName) 'Ouvrir un nouveau document
                Else
                    MessageBox.Show("Opération annulée par l'utilisateur!", "Ouverture", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    'suppression fichier image
                    suppression()
                    Exit Sub
                End If
                .Dispose()
            End With
        ElseIf reponse = vbNo Then
            oWord.Documents.Add() 'création document
        Else 'annuler
            'suppression fichier image
            suppression()
            Exit Sub
        End If
        'rendre le document word visible
        oWord.Visible = True 'ce n'est pas obligatoire
        oWord.Selection.InlineShapes.AddPicture(FileName:= _
     fichier, LinkToFile:= _
         False, SaveWithDocument:=True) 'insertion image
        oWord.ActiveDocument.Close() 'on ferme le document
        oWord.Visible = False
        oWord.Quit() 'on ferme Word
        'suppression fichier image
        suppression()
    End Sub
#End Region
#Region "Fonctions"
    Private Sub suppression()
        'suppression fichier image
        If File.Exists(fichier) Then
            Try
                File.Delete(fichier)
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub
#End Region
End Class

1
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
25 avril 2016 à 19:23
merci beaucoup cs_Le Pivert j'ai compris comment ça marche
je te suis vraiment reconnaissant
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 avril 2016 à 11:13
Bonjour,

Dans un précédent post, je t'ai donné ce lien. En lisant tout, il y a un lien avec des exemples pour Excel, Word et PowerPoint. Dans cet exemple on importe justement une image:

https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
Modifié par Whismeril le 25/04/2016 à 11:24
Salut, c'est bien tout le problème, on lui donne des liens, mais il ne les lit pas ou pas entièrement....
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
25 avril 2016 à 16:41
Merci beaucoup cs_Le Pivert j'ai déjà remarqué le code que tu m'a envoyé, c'est juste que je ne sais pas comment l'intégrer au code qui me permet de remplire un document word :
https://forums.commentcamarche.net/forum/affich-33415553-creer-et-remplire-un-fichier-word-avec-visual-basic#p33438805
mais je vais réessayer je te tiendrai au courant.

à propos du commentaire de Whismeril j'ai déjà vu l'exemple de cs_Le Pivert auparavant
je lis tous les liens que m'envoi jusqu'à la fin par respect à ceux qui m'aide.
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
Modifié par kikou93 le 25/04/2016 à 18:11
bonjour cs_Le Pivert,
moi ce que je veux et d’insérer le contenue de la PictureBox j'utilise après le texte dans mon document Word, alors j'ai met a la place de ce code :
oPara5.Range.InlineShapes.AddPicture(FileName:="C:\Users\...\Desktop\Image00006.png", LinkToFile:=False, _
SaveWithDocument:=True)

ton code
Dim fichier As String = System.Windows.Forms.Application.StartupPath & "\monimage.jpg"
       PictureBox1.Image.Save(fichier, System.Drawing.Imaging.ImageFormat.Jpeg)
(normalement ç'est ce que permet d'enregistrer le contenue de la PictureBox dans ton code)

il s'exécute sans afficher d'erreur mais l'image n’apparaît pas dans le document Word
comme je l'ai dit au par avant je n'arrive pas a intégrer ton code dans le mien :
peux-tu m'expliquer comment l'intégrer s'il te plait
0