IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Envoyer le contenu d'un Word dans un Richtextbox


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Envoyer le contenu d'un Word dans un Richtextbox
    Bonjour,

    Je suis électricien, j'ai quelque base en automation.
    Je souhaite envoyé vers un appareil qui communique par RS232 le contenu d'un document WORD.

    J'ai repris un projet existant -> https://sourceforge.net/projects/vbserialcomport/files/

    J'essaye désespérément de rajouter un combo box qui m'afficherais une liste de 3 items. (jusque la tout vas bien )
    En choisissant l'un des trois, le programme vb ouvre un word se trouvant sur mon bureau et l'envoi directement sur la liaison série vers l'appareil connecté (input). (le moment où je me sens pas bien)

    Nom : SERIE.png
Affichages : 1372
Taille : 72,1 Ko

    Après des heures et des heures interminables sur youtube je jette l'éponge...
    Je viens demandé votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Disons qu'il y a des moyens plus simples d'envoyer un texte de VB.net à Word que de passer par un port série, et que j'ai un sérieux doute sur l'(in)utilité de la chose; d'autant plus que ce ne serait pas plus long de juste enregistrer le texte du RichTextBox au format RichTextBox et de rouvrir le fichier dans Word.

    Comme Word ne peut pas lire directement le port série, tu as besoin d'un activex qui peut opérer un port série que tu vas devoir intégrer à Word, ou passer directement par l'API Windows.

    Dans VB.net, tu peux utiliser le contrôle SerialPort.

    Si ton port série, c'est en fait un port USB, là, tu dois oublier le contrôle SeriaPort.

    Mais, si ton document Word et ton programme Vb.net sont sur la même machine, un banal Copier-Coller, cela fait pareil.

    Ajout subséquent :

    Bon, j'ai répondu à l'envers de la question, mais le principe reste le même. En VB.net, tu peux facilement piloter Word pour qu'il enregistre au format RTF et facilement charger un fichier RTF dans un RichTextBox. Pas besoin de port série pour cela. Et comme, je n'ai pas de port série "ordinaire" sur mon portable, ce ne sera sûrement pas moi qui va zigonner l'API Windows pour que Word puisse envoyer quelque chose sur un port série.


    Mais, plus j'y pense plus que je me demande c'est quoi la vraie question :

    1) Utiliser VB.net pour que Word envoie quelque chose sur le port série ?
    2) Utiliser VB.net pour que VB.net importe un document Word en passant par le port série ?
    3) Utiliser VB.net pour importer un document Word, peu importe la façon, et envoyer ce document-là sur un port série, en utilisant VB.net pour zigonner le port série ?

    S.V.P, expliquez-moi, quelqu'un.

    P.S. Si jamais, la durée de mes cogitations m'a fait télescoper, ou doubler d'autres réponses, je vous prie d'avance d'accepter toutes mes excuses.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Le but est de récupérer un texte word par visual basic et non l'inverse.
    Ensuite, pour l'utilité ... Je vous prie de croire qu'elle est très importante pour moi.

    L'appareil concerné est une imprimante de 2004 qui ne communique que sous rs232.

    Oublions le port série.
    Ma question n'en a pas l'air mais elle est simple.

    Comment puis-je faire en sorte qu' un bouton ou combobox puisse récupérer un texte a l'intérieur d'un word et le retranscrire sur mon textbox ou richtext?

    Merci.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par suryoyo Voir le message
    Ma question n'en a pas l'air mais elle est simple.

    Comment puis-je faire en sorte qu' un bouton ou combobox puisse récupérer un texte a l'intérieur d'un word et le retranscrire sur mon textbox ou richtext?

    Merci.
    Copier-coller ou enregister sous RTF dans Word et ouvrir RTF dans un RichTextBox dans VB.net


    Cet exemple ne montre pas comment faire un copier-coller, ou un enregistrer sous..., mais cela montre comment utiliser VB.net pour ouvrir un document Word par automation.

    Au pire, tu peux enregistrer une ou des macros dans Word et utiliser l'exemple pour adapter la/les macros à VB.net. En général, il faut adapter la hiérarchisation des objets.

    Mais moi, je téléchargerais Visual Studio Community, (gratuit), je virerais VBExpress, et je créerais un complément (add-in ou application) Word avec Community. Community et Express sont gratuits, mais Community peut utiliser Office Tools For Visual Studio (ex Visual Studio Tools For Office (VSTO)). Express, c'est pantoute.

    Ou même, cela me revient. Sans avoir Community et sans Automation. On peut ouvrir un document Word directement dans VB.net avec Docx. Je ne l'ai jamais essayé, mais je suppose que cela devrait marcher.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    Comment puis-je faire en sorte qu' un bouton ou combobox puisse récupérer un texte a l'intérieur d'un word et le retranscrire sur mon textbox ou richtext?

    Aajouter une référence dans le projet application à
    Microsoft.Office.Interop.Word dans le concepteur VS

    code .vb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    'ajouter une réféence à 
    'Microsoft.Office.Interop.Word dand le concepteur vs
    Imports Microsoft.Office.Interop
     
    Public Class Form1
        Private path As String = Application.StartupPath + "\Exemple.docx"
     
        Private WordApp As Word.Application
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            WordApp = New Word.Application
            WordApp.Visible = True
            Dim aDoc As Word.Document = WordApp.Documents.Open(path)
     
            aDoc.ActiveWindow.Selection.WholeStory()
     
            aDoc.ActiveWindow.Selection.Copy()
     
            Dim atext As IDataObject
            atext = Clipboard.GetDataObject()
            Dim RTFdata As String = atext.GetData(DataFormats.Rtf)
            RichTextBox1.Rtf = RTFdata
     
            aDoc.Close()
     
            WordApp.Application.Quit()
     
        End Sub
    End Class
    bon code...

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    J'ai fait un peu d'expérimentation avec automation pour Word dans VB.net.

    une Form avec un RichtextBox et 3 boutons, et une référence à Microsoft.interop.office.word. Si tu ne trouves pas Microsoft.interop.office.word dans tes références, tu peux l'Établir directement avec Winword.exe.

    La première procédure utilise Word pour enregistrer le document en RTF et VB.net rouvre le fichier pour l'afficher dans le RTB.

    La seconde, ressemble un peu à ce que Mabrouki a fait et fait un copier dans Word et un coller dans le RTB.

    Si tu veux utiliser la deuxième, ou celle de Mabrouki, tu peux regarder les méthodes du RTB, il peut enregistrer son contenu au format RTF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Imports Microsoft.Office.Interop.Word
    Public Class Form1
        Dim UnFichier As String = "C:\Users\Clement Marcotte\Documents\Capturing Video from Web.docx"
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
     
     
            Dim Unfichier2 As String = UnFichier.Replace("docx", "rtf")
            Dim AppWord As New Microsoft.Office.Interop.Word.Application
            AppWord.Visible = False
            Dim UnDocument As Microsoft.Office.Interop.Word.Document = AppWord.Documents.Open(UnFichier)
            UnDocument.SaveAs2(Unfichier2, 6)
            UnDocument.Close()
            UnDocument = Nothing
            AppWord.Quit()
            RichTextBox1.LoadFile(Unfichier2)
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim AppWord As New Microsoft.Office.Interop.Word.Application
            AppWord.Visible = False
            Dim UnDocument As Microsoft.Office.Interop.Word.Document = AppWord.Documents.Open(UnFichier)
            Dim UneSélection As Microsoft.Office.Interop.Word.Selection = UnDocument.Windows.Item(1).Selection
            UneSélection.WholeStory()
            UneSélection.Copy()
            RichTextBox1.Paste()
            UnDocument.Close()
            UnDocument = Nothing
            AppWord.Quit()
        End Sub
     
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Me.Dispose()
        End Sub
    End Class
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Envoyer le contenue d'un TextBox dans un wchar_t*
    Par vin100H dans le forum C++/CLI
    Réponses: 6
    Dernier message: 30/08/2012, 15h20
  2. Réponses: 2
    Dernier message: 27/09/2011, 15h24
  3. Réponses: 1
    Dernier message: 10/02/2011, 12h14
  4. Envoyer le contenu d'un fichier dans le navigateur
    Par Bruno2000 dans le forum Langage
    Réponses: 1
    Dernier message: 29/02/2008, 20h47
  5. Réponses: 2
    Dernier message: 02/11/2007, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo