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

C++Builder Discussion :

oleword (de VBA vers C++)


Sujet :

C++Builder

  1. #21
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut
    wdCell est un espece de #define que je ne connais pas
    c'est un id
    comment le connaitre ???

  2. #22
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    J'ai reussi a fusionner les cellules voici le code.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    myTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1");
    myTable.OleFunction("Cell", 1, 1).OleFunction("Merge", myTable.OleFunction("Cell", 2, 3));
    pour avoir les valeur des constantes utilisees par VB, il faut utiliser le debugger en mode pas a pas, c'est pareil que BCB utiliser "F8" quand on pointe le curseur sur une variable il donne la valeur par exemple "wdCell = 12".

  3. #23
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut
    bien vu
    merci pour le conseil de deboggage VB ;-)
    pas mal

    je me rends compte donc que l'extend ne marche pas sur des Cell mais plutot sur des caracteres
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    Table1.OleFunction("Cell", 2, 1).OleFunction("Select");
    vMSWord.OlePropertyGet("Selection").OleFunction("MoveRight", 12, 1, 1);      // wdCell=12
    vMSWord.OlePropertyGet("Selection").OlePropertyGet("Cells").OleFunction("Merge");
    parce qu'il deplace tte la selection et non pas augmente la selection !

    Sinon, regarde ds
    c:\Program Files\Borland\BDS\4.0\include\vcl\word_xp.h
    il y a ttes les d�finitions des
    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
    typedef enum WdUnits
    {
      wdCharacter = 1, 
      wdWord = 2, 
      wdSentence = 3, 
      wdParagraph = 4, 
      wdLine = 5, 
      wdStory = 6, 
      wdScreen = 7, 
      wdSection = 8, 
      wdColumn = 9, 
      wdRow = 10, 
      wdWindow = 11, 
      wdCell = 12, 
      wdCharacterFormatting = 13, 
      wdParagraphFormatting = 14, 
      wdTable = 15, 
      wdItem = 16
    } WdUnits;
    il suffit de l'inclure ds ton .cpp
    #include <word_xp.h>
    et �a marche :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Table1.OleFunction("Cell", 2, 1).OleFunction("Select");
    vMSWord.OlePropertyGet("Selection").OleFunction("EndOf", wdColumn, wdExtend);
    vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold",true);
    ciao

  4. #24
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    J'ai une solution pour selectionner quelques cellules y appliquer un format les fusionner.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    myTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1");
    myRange = vWDocument.OleFunction("Range", myTable.OleFunction("Cell", 1, 1)
    .OlePropertyGet("Range").OlePropertyGet("Start"), myTable.OleFunction("Cell", 1, 3).OlePropertyGet("Range").OlePropertyGet("End"));
     
    myRange.OlePropertyGet("Font").OlePropertySet("Bold",true);
     
    myRange.OlePropertyGet("Cells").OleProcedure("Merge");

  5. #25
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut
    m�me si c'est plus long que ta 1ere solution, on peut faire plusieurs choses dont le Merge, c'est Top
    y a plus qu'� faire un tutorial ;-)

    ciao et merci

  6. #26
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut tutorial
    Je te propose d'en faire un, avec comme plan :
    les trucs classiques (ouvrir word, document, fermer, quitter, �a existe d�j� sur :http://lfe.developpez.com/Word/) mais surtout la manipulation de tableaux, fusion...
    la mise en page, paragraphe, Font, Bold, couleurs,
    masi surtout � chaque fois, la correspondance entre Range et Selection
    y a des fonctions qu'on a ds Selection qu'on n'a pas ds Range particulierement ds les tableaux (exple je veux selectionner un bout de colonne ds un tableau pour lui changer de couleur, eh ben le Range me selectionne ttes les cellules entre les 2 avec start et end et seule la fonction suivante le permet
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
        Table1.OleFunction("Cell", 2, C+6).OleFunction("Select");
        vMSWord.OlePropertyGet("Selection").OleFunction("MoveDown", wdLine, 5, wdExtend);
        vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Color", wdColorRed);
    NB le #include <word_xp.h> facile bcp les choses !!!

    je pense qu'il est important ds le tutorail ou la FAQ de pr�ciser ces choses l�.
    tu en penses quoi ?
    on contacte GreyBird ?
    Ciao
    Lotfi

  7. #27
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Tout un lot de fonctions a ete depose pour etre integre a la FAQ, il faudra certainement les retester afin de corriger d'eventuelle erreurs, et de completer les commentaires, je depose regulierement mes trouvailles, ainsi que celles d'autres "Forumeur".

  8. #28
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut
    cooooool,
    alors � qd la publication !!!
    ils pourraient le faire (meme en version beta ou � tester) !

    et pour l'encapsulation ds des classes
    style ce qu'on fait en VBA
    �a pourrait donner :
    Selection->Font->Color=wdColorRed;
    au lieu de passer par du OleFunction et procedure, get set...
    �a peut �tre pas mal aussi
    tu sais pas si y'en a qui bossent la dessus ?

    Ciao

  9. #29
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    LotfiB a ecrit:
    cooooool,
    alors � qd la publication !!!
    ils pourraient le faire (meme en version beta ou � tester) !

    et pour l'encapsulation ds des classes
    style ce qu'on fait en VBA
    �a pourrait donner :
    Selection->Font->Color=wdColorRed;
    au lieu de passer par du OleFunction et procedure, get set...
    �a peut �tre pas mal aussi
    tu sais pas si y'en a qui bossent la dessus ?
    Le code doit rester simple pour les gents peu experimentes, les programmeurs confirmes modifient le code a leur convenance, en BCB je ne pense pas qu'il y est grand monde.

  10. #30
    Membre confirm� Avatar de LotfiB
    Inscrit en
    Ao�t 2004
    Messages
    117
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 117
    Par d�faut
    justement, l'encapsulation / classes sert � simplifier la syntaxe de l'OleWord !
    �a reviendrai aussi simple que sous VBA pour Word
    l'ennui est que sous BDS2006 y a pas de help dessus
    faut que je regarde sur une ancienne machine ou j'avais BCB6 s'il ya le help sur les composdants office2000 et si borland ont tt encapsul�...
    ciao

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 2 sur 2 Premi�rePremi�re 12

Discussions similaires

  1. [VBA EXCEL] Macro commande vba vers windows
    Par Lexot2 dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 22/04/2007, 12h05
  2. VBA vers VBS syntaxe
    Par Eric dans le forum VBScript
    R�ponses: 4
    Dernier message: 22/02/2007, 09h41
  3. [VB Project] Excel Vba vers Microsoft Project
    Par Mut dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 12/10/2006, 12h06
  4. envoyer le contenu de variables vba vers une feuille excel
    Par Sebastien_INR59 dans le forum Access
    R�ponses: 1
    Dernier message: 21/06/2006, 19h58

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