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. #1
    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 oleword (de VBA vers C++)
    Bonsoir

    en fait j'ai des difficulté avec les tableaux, comment selectionner 2 lignes, ou bien aller apres le tableau pour inserrer du texte ou un nouveau paragraphe
    et il n'y a que des bouts de code qui existent de part et d'autres sans qu'il n'y ai de continuité.
    je confond Range et Selection, y a des fonctions qui sont compatible avec range d'autres avec selection..
    comment fait on pour sortir d'un tableau ???


    exple comment traduire le help de VBA Word qui selectionne une ligne entier d'un tableau vers du C++
    Cet exemple montre comment ajouter un tableau, sélectionner la première cellule de la deuxième ligne et étendre la sélection vers la fin de la colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set myRange = ActiveDocument.Range(0, 0)
    Set myTable = ActiveDocument.Tables.Add(Range:=myRange, _
        NumRows:=5, NumColumns:=3)
    myTable.Cell(2, 1).Select
    Selection.EndOf Unit:=wdColumn, Extend:=wdExtend
    ou bien
    L'objet Selection comprend plusieurs méthodes et propriétés permettant de réduire, de développer ou de modifier la sélection en cours. L'exemple suivant montre comment placer le point d'insertion à la fin du document et sélectionner les trois dernières lignes de ce dernier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Selection.EndOf Unit:=wdStory, Extend:=wdMove
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    Selection.MoveUp Unit:=wdLine, Count:=2, Extend:=wdExtend

    ciao
    Lotfi

  2. #2
    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
    Salut LotfiB:
    dans le post precedent il y avait la fonction pour creer un tableau
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // on cree un tableau de deux lignes et six colonnes
        vWDocument.OlePropertyGet("Tables").OleFunction("Add", vMSWord.OlePropertyGet("Selection").
        OlePropertyGet("Range"), 2, 6);

  3. #3
    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
    c'estr pas la creation qui me pose pb, là c'est bon
    c'est la selection d'une ligne ou 2 du tableau par exemple

    ou me deplacer à la fin du document ?
    je fais ça avec range ou selection
    je cherche de la SYNTAXE
    car comme les fonctions compile bien mais donne des erreurs à l'exec, comme tt OLE qui se respecte :-(

  4. #4
    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
    Voici pour la selection de la premiere cellule de la deuxieme ligne.
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1").OleFunction("Cell", 2, 1).OleFunction("Select");
    Je te passe le code au fur et a mesure que je l'ecrit

  5. #5
    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
    Voici comment selectionner la deuxieme ligne du tableau.
    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1").OlePropertyGet("Rows").OleFunction("Item", "2").OleFunction("Select");

  6. #6
    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
    comment tu sais que c'est une
    OleFunction("Select")
    et non pas une OleProcedure ou proprietyGet
    c'est l'xp ? ou tu as de la doc qqe part sur ttes les fonctions ?
    ça serait bien qu'on en mette une sur une FAQ ?
    ;-)

  7. #7
    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
    Voici comment aller a la fin du document.
    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vMSWord.OlePropertyGet("Selection").OleProcedure("EndKey", "6");
    Je pense avoir repondu a tes questions.
    je fais ça avec range ou selection
    je cherche de la SYNTAXE
    Le code est une readaptation du code VBA Word qui n'est pas toujours evident a trouver il faut faire une comparaison entre les deux codes pour essayer de comprendre.
    Bon courage.
    A+

  8. #8
    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
    juste un truc encore

    comment tu étends la selection à partir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyTable.OlePropertyGet("Rows").OleFunction("Item", "2").OleFunction("Select");
    (une fois que tu l'as fait)
    par exemple jusqu"à la ligne suivante
    Merci

  9. #9
    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:
    comment tu sais que c'est une
    OleFunction("Select")
    et non pas une OleProcedure ou proprietyGet
    c'est l'xp ? ou tu as de la doc qqe part sur ttes les fonctions ?
    ça serait bien qu'on en mette une sur une FAQ ?
    Avec OlePropertyGet on selectionne les mots de commande VB.
    Avec OlePropertySet on ecrit une commande.
    Avec OleFunction ou OleProcedure on execute une fonction.
    Je sais que ce n'est pas evident mais il n'y a qu'en essayant avec les morceaux de code que l'on arrive a comprendre.
    Tous les codes qui fonctionnent sont proposes pour une prochaine mise a jour de la FAQ en attendant je repondrais a tes questions.

  10. #10
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Table1.OlePropertyGet("Rows").OleFunction("Item", "2").OleFunction("Select");
    vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold",true);
    marche TB

    mais, étendre la selection à partir d'une cellule :-( ne marche pas encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Table1.OleFunction("Cell", 2, 1).OleFunction("Select");
    vMSWord.OlePropertyGet("Selection").OleFunction("EndOf", "wdColumn","wdExtend");
     
    ou vMSWord.OlePropertyGet("Selection").OleFunction("EndOf").OlePropertySet("wdColumn","wdExtend");
    // traduire : Selection.EndOf Unit:=wdColumn, Extend:=wdExtend
     
    vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold",true);
    je cherche aussi à fusionner les cellule d'une ligne et à les centrer(je chercherai tt seul cette partie là :-)

  11. #11
    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
    Je cherche des que j'ai trouve je poste.

  12. #12
    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
    merci bcp

    pour fusionner ya :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Selection.Information(wdWithInTable) = True Then
        Set myrow = Selection.Rows(1)
        myrow.Cells.Merge
    mais ce qui m'interesse est uniquement de fusionner les 3 premieres cellules de la 1er ligne par exemple donc dès que l'on saura etendre la selection, on pourra faire un C++ equiv à myrow.Cells.Merge

  13. #13
    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 trouve le code VB pour selectionner une plage de cellules puis les fusionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set myTable = ActiveDocument.Tables(1)
    Set myRange = ActiveDocument.Range(myTable.Cell(1, 1) _
        .Range.Start, myTable.Cell(1, 2).Range.End)
    myRange.Cells.Merge
    Maintenant il reste a l'adapter.

  14. #14
    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
    c'est le + dur !!
    j'essaye deja un ligne à fusionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Table1.OlePropertyGet("Rows").OleFunction("Item", "1").OleFunction("Select");
    Application->MessageBoxA("Next", "Debug", MB_OK);
     vMSWord.OlePropertyGet("Selection").OleFunction("Merge");
    mais ça plante sur le Merge, il doit y avoir des options ou ???

  15. #15
    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 le meme probleme avec Merge

  16. #16
    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
    voilà ce qui marche (à l(instant !!!)
    Table1.OlePropertyGet("Rows").OleFunction("Item", "1").OleFunction("Select");
    Application->MessageBoxA("Next", "Debug", MB_OK);
    vMSWord.OlePropertyGet("Selection").OlePropertyGet("Cells").OleFunction("Merge");

  17. #17
    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
    la tu fusionne une ligne complete?

  18. #18
    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
    oui
    il me reste à trouver comment etendre la selection ds des cellules
    ça doit ressembler à :
    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", "wdCell");
     vMSWord.OlePropertyGet("Selection").OlePropertyGet("Cells").OleFunction("Merge");
    mais le OleFunction("MoveRight", "wdCell");
    n'est pas accepté
    tu sais comment on specifie l'Unit (voici le vba)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.MoveRight Unit:=wdCell, Count:=1, Extend:=wdMove

  19. #19
    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 fais un essai:
    le code VB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set myTable = ActiveDocument.Tables(1)
    Set myRange = ActiveDocument.Range(myTable.Cell(1, 1).Range.Start, myTable.Cell(1, 2).Range.End)
    myRange.Cells.Merge
    Ce que j'ai teste mais j'ai une erreur sur le 1er Range:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    myTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1");
    myRange = vWDocument.OlePropertyGet("Range", myTable.OleFunction("Cell", 1, 1).OlePropertyGet("Range").OleFunction("Start"), myTable.OleFunction("Cell", 1, 3).OlePropertyGet("Range").OleFunction("End"));

  20. #20
    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:
    mais le OleFunction("MoveRight", "wdCell");
    n'est pas accepté
    tu sais comment on specifie l'Unit (voici le vba)
    Quand tu teste sous VB "wdCell" a une valeur, c'est cette valeur qu'il faut passer dans ton code.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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