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

VBA Word Discussion :

Insérer une donnée RTF dans une cellule de tableau


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 37
    Points : 24
    Points
    24
    Par défaut Insérer une donnée RTF dans une cellule de tableau
    Bonjour,

    J'utilise actuellement un programme vb pour créer un fichier Word.
    Ce fichier contient un tableau, et j'essaie d'insérer une donnée RTF dans une cellule.

    Cette donnée RTF est issue d'une base Access, est extraite sous la forme {\rtf1\ansi\...} et est récupérée par un objet ADODC (Form1.Data1 dans le code ci-dessous).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim WAppli As Word.Application
    Dim WTable As Word.Table
     
    Set WTable = WAppli.Selection.Tables.Add(Range:=WAppli.Selection.Range, NumRows:=9, NumColumns:=2)
    WAppli.ActiveDocument.Tables(1).Columns(2).Cells(1).Range.Text = Form1.Data1.Recordset(1).Value
    Bien sur, avec ce code j'obtiens dans ma cellule "{\rtf1\ansi\...}".
    Comment insérer cette donnée RTF?

    J'ai essayé sans succès d'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Clipboard.SetText Form1.Data1.Recordset(1).Value, vbCFRTF
    WAppli.ActiveDocument.Tables(1).Columns(2).Cells(1).Range.Text = Clipboard.GetText(vbCFRTF)
    Egalement sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Clipboard.SetText Form1.Data1.Recordset(1).Value, vbCFRTF
    WAppli.ActiveDocument.Tables(1).Columns(2).Cells(1).Range.PasteSpecial , , , , wdPasteRTF

    Merci d'avance pour votre aide.

  2. #2
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut HomoErectus,

    Je tombe sur ton post parceque... je cherche à faire exactement ce que tu décris et que je n'y arrive pas non plus.

    J'ai passé par les mêmes échecs tentatives infructueuses.

    As-tu trouvé une réponse ailleurs ? Moi pas

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    surprenant cette demande VB dans le forum Word !

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Euuuhhh... pourquoi est-ce surprenant ?

    Le forum est "Logiciels > Microsoft Office > Word > VBA Word", ma macro est dans Word, l'emplacement me semblait donc bien choisi. C'est pas le cas ?

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Word ne gère pas le contenu des fichier !!

    Bien sur, avec ce code j'obtiens dans ma cellule "{\rtf1\ansi\...}".
    Comment insérer cette donnée RTF?
    Word ne gère pas le RTF de cette manière.

    Si tu penses que le VBA va te venir en aide, il faudrait reformuler ton besoin.

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut,

    J'essaie de reformuler:

    Dans Access, j'ai un champ Memo qu j'édite au moyen d'un contrôle RTF. Je peux donc faire une liste formattée:

    Acheter:
    • Du pain
    • Du lait
    • Des oeufs


    Lorsque je lis ce champ depuis mon code VBA (dans Word par une connection ODBC), j'en retire la version encodée, soit quelquechose comme:

    {\rtlch\fcs1 \af0
    \ltrch\fcs0 \lang1036\langfe1033\langnp1036\insrsid2702692\charrsid2702692 Acheter:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1036\langfe1033\langnp1036\insrsid2049683\charrsid2702692
    \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \f3\lang1036\langfe1033\langnp1036\insrsid2702692\charrsid2702692 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\widctlpar
    \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid2702692 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1036\langfe1033\langnp1036\insrsid2702692\charrsid2702692 Du pain
    \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \f3\lang1036\langfe1033\langnp1036\insrsid2702692\charrsid2702692 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Du lait
    \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \f3\lang1036\langfe1033\langnp1036\insrsid2702692\charrsid2702692 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Des oeufs
    \par }}

    Je cherche à insérer cela dans mon document pour restituer ma liste formattée.

    Word a évidemment du code qui qui fait le rendu du RTF; mon but est d'invoquer ce code pour qu'il me formatte ma liste dans mon document.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tu as deux options.
    La première est l'utilisation de l'enregistreur de macro qui va te donner un code similaire à :
    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
    35
        With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1)
            .NumberFormat = ChrW(61623)
            .TrailingCharacter = wdTrailingTab
            .NumberStyle = wdListNumberStyleBullet
            .NumberPosition = CentimetersToPoints(0.63)
            .Alignment = wdListLevelAlignLeft
            .TextPosition = CentimetersToPoints(1.27)
            .TabPosition = CentimetersToPoints(1.27)
            .ResetOnHigher = 0
            .StartAt = 1
            With .Font
                .Bold = wdUndefined
                .Italic = wdUndefined
                .StrikeThrough = wdUndefined
                .Subscript = wdUndefined
                .Superscript = wdUndefined
                .Shadow = wdUndefined
                .Outline = wdUndefined
                .Emboss = wdUndefined
                .Engrave = wdUndefined
                .AllCaps = wdUndefined
                .Hidden = wdUndefined
                .Underline = wdUndefined
                .Color = wdUndefined
                .Size = wdUndefined
                .Animation = wdUndefined
                .DoubleStrikeThrough = wdUndefined
                .Name = "Symbol"
            End With
            .LinkedStyle = ""
        End With
        ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
        Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
            wdBulletGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _
            wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
    La seconde, est l'utilisation d'un style qui fera la même chose.
    Il suffit alors d'appliquer le style voulu.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2011, 14h38
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. [MySQL] Insérer des données à partir d'une db mysql dans un textarea
    Par minogttao dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 21h59
  4. Insérer des données Excel dans une table ACCESS
    Par anikeh dans le forum Access
    Réponses: 4
    Dernier message: 21/12/2005, 22h42
  5. Insérer des données Excel dans une base Access ?
    Par MaTHieU_ dans le forum Access
    Réponses: 3
    Dernier message: 22/06/2005, 15h11

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