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 :

Transfert contenu RichTextBox vers Word


Sujet :

VB.NET

  1. #1
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut Transfert contenu RichTextBox vers Word
    Bonjour a tout le monde, j'espère que la communauté se porte bien aussi

    J'ai un petit blocage d'idée...

    Dans ma fonction , je copie bien le contenu de mon RichTextBox mais lorsque je fais le Paste , la il ne se positionne pas a la bonne place, il met le contenu au debut du document.
    Y a t'il aussi possibilité de marquer l'emplacement ou je désire coller le contenu du RichTextBox a l'aide d'un Bookmark dans le document Word?.

    Merci de votre participation

    voici le bout de code en cours....


    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
     
      Dim ObjWord As Object
     
      Clipboard.SetText(TxtTexteMateriel.Rtf, TextDataFormat.Rtf)
     
      ObjWord = CreateObject("Word.Application")
     
     With ObjWord
     
                 .ActiveDocument.Bookmarks("GEN_Name").Range.Text = "MonNom"
                 .ActiveDocument.Bookmarks("GEN_SecondName").Range.Text = "SecondNom"
                     ...
                     ...
     
                .Selection.Paste
     
     End With

  2. #2
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par thierry007 Voir le message
    Bonjour a tout le monde, j'espère que la communauté se porte bien aussi

    Y a t'il aussi possibilité de marquer l'emplacement ou je désire coller le contenu du RichTextBox a l'aide d'un Bookmark dans le document Word?.
    Oui. Ceci dit la méthode "exacte", si tant est qu'il y a une méthode "exacte" va dépendre plus de l'endroit où tu veux mettre ton texte, et par le fait même où tu veux mettre ton signet.

    Si tu veux mettre ton signet par le code; les objets Range et Selection de (VBA) Word permettent de mettre un signet à un endroit précis. Tout dépend de l'endroit. Si c'est au centre d'un paragraphe existant et sans créer de nouveau paragraphe, ce sera différent d'ajouter un nouveau paragraphe au début, à la fin ou entre deux autres paragraphes. Et puis la suite du collage risque d'être différente, selon que tu veuilles garder le signet ou non. Ceci dit, une fois que tu as promené ton curseur à la bonne place, tu peux tout aussi bien te passer d'un signet et coller le texte.

    Si tu mets ton signet manuellement, tu peux le sélectionner directement par son nom, ou tester chaque nom de signet en itérant la collection Bookmarks de ton document. Mais encore là, la suite va être différente selon que tu veuilles conserver ou non le signet.

    Mais là, je suis bien mal pris pour mettre un code VB.net. Mon installation de VB.net est endommagée. J'ai essayé de réparer en ligne 3 ou 4 fois; j'ai essayé d'installer en ligne le nouveau Update 2, 3 ou 4 fois et rien ne marche. Là j'ai 20 % de l'ISO qui est téléchargé, et j'ai comme la vague impression que je vais devoir désinstaller avant de repartir avec l'ISO. Cela va être long, longtemps.

    Au pire, je pourrais probablement te faire quelque chose en VBA. Mais là, tu vas devoir adapter pour VB.net.

  3. #3
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    bonjour clementmarcotte
    merci de ton retour

    Avec un signet , ce serait bien l'approche que je souhaiterais mettre en oeuvre

    comme mis dans le code ci-dessus, avoir des signets qui se trouve dans le document. les signets qui doivent eux contenir des données stockées dans des textbox , il n'y a pas de problème , mais a partir d'un RichTextBox, là c'est une autre affaire.

    si je fais ceci ".ActiveDocument.Bookmarks("GEN_Name").Range.Text = RichTextBox " , la le texte passe mais non lisible ( caractères de mise en page et autre )

  4. #4
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Dans les constantes de PasteSpecial de VBA Word, il y a une constante pour coller au format RTF. Théoriquement, si dans VB.net tu es capable de mettre ton texte dans le presse-papiers en gardant le format RTF, tu devrais pouvoir le coller au format RTF dans Word. Avec un peu de chance, Word va se débrouiller avec le reste.

    En VBA, cela devrait ressembler à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.PasteSpecial DataType:=wdPasteRTF

  5. #5
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Faire la copie dans le clippboard, pas de problème
    le coller pas de problème non plus , mais c'est de pouvoir aller le placer a un endroit précis du document.

  6. #6
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Où tu places ton signet à la main et tu le sélectionnes par VBA:

    (En ajustant en fonction des objets .net. (J'ai juste 36 % de mon ISO sur mon disque et BELL scrap niaise sur la vitesse de transmission et Microsoft m'ajoute constamment son hospice de BITS dans les patte, pour je ne sais pas quoi.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bookmarks("Machin").select 
    Selection.PasteSpecial DataType:=wdPasteRTF
    Là tu perds ton signet.

    Ou, comme j'ai dit plus haut, tu utilises l'objet Selection de Word pour promener le curseur (point d'insertion) jusqu'à l'endroit désiré, et tu insères un signet ou tu colles directement ton texte.

    Mais, ce n'est pas la place pour un cours sur l'objet Selection, ses paramètres WdMove et WdExtend et l'ensemble de ses propriétés et méthodes. Et puis, je ne dispose pas actuellement des deux ou trois heures nécessaires pour le faire.

    Rien ne t'empêche d'enregistrer une ou des macros dans Word et de les adapter pour VB.net ou de consulter l'aide de VBA-Word ou MSDN.

    Attention, l'enregistreur de macros de Word ne permet pas de manipuler du texte avec la souris. Il faut le faire au clavier.

  7. #7
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Bonjour

    après quelques test et heures passées sur le sujet , voici une solution qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Clipboard.SetText(MonTextBox, TextDataFormat.Rtf)
     
                                    oWord.ActiveDocument.Bookmarks("MonSignet").Range.Paste()
    et le contenu RTF sera placé a l'endroit su signet ( MonSignet )

    Merci de vos différentes interventions

Discussions similaires

  1. [Toutes versions] Transfert contenu textbox vers combobox
    Par louis-25 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/10/2011, 14h13
  2. [XL-2007] transfert données excel vers word via plusieurs macro!
    Par yannick63430 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/12/2010, 21h41
  3. Transfert contenu popup vers un formulaire
    Par mutkas10 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/08/2010, 23h06
  4. Transfert de données d'un formulaire vers Word
    Par CybSnoopy dans le forum Access
    Réponses: 2
    Dernier message: 07/08/2006, 11h48
  5. [VB6]Transférer un RichTextBox vers Word
    Par Chess0 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 28/03/2006, 15h35

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