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

MATLAB Discussion :

Encadrer du texte dans Word à partir de controles activeX depuis Matlab


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Engineering Manager
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Engineering Manager
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut Encadrer du texte dans Word à partir de controles activeX depuis Matlab
    Bonjour,

    Je chercher à générer des rapports à partir de MATLAB en utilisant ActiveX dans Word. J'arrive à écrire du texte, insérer des figures.

    Maintenant je voudrais encadrer certains éléments. Dans l'exemple ci-dessous du texte :

    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
    clc
    clear all
     
    WordFileName='TestDoc.doc';
    CurDir=pwd;
    FileSpec = fullfile(CurDir,WordFileName);
    actx_Word = actxserver('Word.Application');
    actx_Word.Visible = true;
    trace(actx_Word.Visible);
    if ~exist(FileSpec,'file');
        % Create new document:
        word_handle = invoke(actx_Word.Documents,'Add');
    else
        % Open existing document:
        word_handle = invoke(actx_Word.Documents,'Open',FileSpec);
    end
     
     
    actx_Word.Selection.Borders.Enable = 1;
    TextString='Texte encadré';
    actx_Word.Selection.TypeText(TextString);
     
    actx_Word.Selection.TypeParagraph; %enter
    actx_Word.Selection.Borders.Enable = 0;
    TextString='Texte PAS encadré';
    actx_Word.Selection.TypeText(TextString);
    actx_Word.Selection.TypeParagraph; %enter
    Dans l'exemple ci-dessus, "Texte encadré" est supposé être encadré. Et "Texte PAS encadré" est supposé ne pas être encadré !!! Mais visiblement, je m'y prends mal.

    Même punition quand j'essaye d'encadrer une figure que j'ai copiée/colée depuis Matlab dans mon document word.

    Merci d'avance pour votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Il faut que tu définisses les limites de ton encadrement.
    Tel que tu le fais, (juste avant ton Borders.Enable = 0) l'encadrement des deux lignes n'est qu'un seul élément. Ainsi sa désactivation supprime celui des deux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    startRange = word_handle.Range.Start; % On retient la position de départ
    TextString = 'Texte encadré';
    actx_Word.Selection.TypeText(TextString);
    endRange = word_handle.Range.End;  % On retient la position finale (-1 si tu veux juste le texte et non la ligne)
    actx_Word.Selection.TypeParagraph; %enter
    word_handle.Range(startRange , endRange).Borders.Enable = 1;  % On applique la bordure
     
    TextString = 'Texte PAS encadré';
    actx_Word.Selection.TypeText(TextString);
    actx_Word.Selection.TypeParagraph; %enter

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Engineering Manager
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Engineering Manager
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    Hello,

    Merci ! Ca marche !
    Désolé si mes questions paraissent triviales...

    Petite précision : comme j'ai plusieurs succcessions de texte encadré et pas encadré, j'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startRange = word_handle.Range.Start; % On retient la position de départ
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startRange = actx_Word.Selection.Start;
    Autrement, il me prend en sélection depuis le début du document.

    Donc, au final ça ressemble à :

    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
    startRange = actx_Word.Selection.Start; % On retient la position de départ
    TextString='Texte encadré';
    actx_Word.Selection.TypeText(TextString);
    endRange = word_handle.Range.End;  % On retient la position finale 
    actx_Word.Selection.TypeParagraph; %enter
     
    word_handle.Range(startRange , endRange).Borders.Enable = 1;  % On applique la bordure
     
    actx_Word.Selection.TypeParagraph; %enter
    TextString='Texte PAS encadré';
    actx_Word.Selection.TypeText(TextString);
    actx_Word.Selection.TypeParagraph; %enter
     
    startRange = actx_Word.Selection.Start; % On retient la position de départ
    TextString='Texte encadré';
    actx_Word.Selection.TypeText(TextString);
    endRange = word_handle.Range.End;  % On retient la position finale 
    actx_Word.Selection.TypeParagraph; %enter
     
    word_handle.Range(startRange , endRange).Borders.Enable = 1;  % On applique la bordure
     
    actx_Word.Selection.TypeParagraph; %enter
    TextString='Texte PAS encadré';
    actx_Word.Selection.TypeText(TextString);
    actx_Word.Selection.TypeParagraph; %enter
    etc..., etc...

    Merci encore,
    A la prochaine...

Discussions similaires

  1. [E-02] VBA : Récupérer du texte dans Word à partir d'Excel
    Par jmric49 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/03/2009, 18h21
  2. Recherche de texte dans word à partir d'excel
    Par bullrot94 dans le forum Excel
    Réponses: 2
    Dernier message: 19/10/2008, 14h43
  3. [VBA-E]Insérer des autotext dans Word à partir d'excel
    Par noordman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 15h34
  4. Du texte dans JTextField à partir d'un JFileChooser
    Par Eye4eye dans le forum Composants
    Réponses: 2
    Dernier message: 19/12/2005, 20h14
  5. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15

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