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 :

probleme pour tracer une ligne avec OleExcel


Sujet :

C++Builder

  1. #1
    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
    Points : 3 766
    Points
    3 766
    Par défaut probleme pour tracer une ligne avec OleExcel
    J'ai reussi a tracer une ligne avec les commandes OleExcel qui utilise les outils de dessin Excel, mais je n'arrive pas a parametrer l'epaisseur de la ligne, ni la couleur de celle ci.
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // on selectionne la feuille
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
    // on appel la fonction de tracage de ligne
    vWorksheet.OlePropertyGet("Shapes").OleFunction("AddLine", 1, 1, 100,100);
    // on appel la fonction parametrant l'epaisseur de la ligne
    vWorksheet.OlePropertyGet("Line").OleProcedure("Weight", 8);
    J'ai une erreur sur la derniere ligne.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Es-tu certain du OleProcedure ? Ne serait-ce pas un OlePropertySet ?

  3. #3
    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
    Points : 3 766
    Points
    3 766
    Par défaut
    Ricky81 a ecrit:
    Es-tu certain du OleProcedure ? Ne serait-ce pas un OlePropertySet ?
    Merci pour ta reponse Ricky81.
    J'ai fait l'essai l'erreur est nom inconnu.
    Je pense que c'est la facon d'assembler la ligne de commande qui n'est pas bonne pour l'instant je n'ai rien trouve.
    Je met en VBE la fonction que je voudrais reproduire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ActiveSheet.Shapes.AddLine(X, Y, X1, Y1).Select
    Selection.ShapeRange.Line.Weight = 8#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.Forecolor.SchemeColor = 22
    la premiere ligne est celle qui dessine le trait et qui fonctionne.
    La troisieme ligne est facultative mais si je peut la programmer ce sera un plus.
    Ce code est en fait dans une boucle qui lit un tableau de coordonnees X et Y et qui trace un circuit sur la feuille
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  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
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai resolu le probleme de l'epaisseur de la ligne.
    Il fallais ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Variant vLine;
            vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
            vLine = vWorksheet.OlePropertyGet("Shapes").OleFunction("AddLine", 1, 1, 200,100);
            vLine.OlePropertyGet("Line").OlePropertySet("Weight", 8);
    Il me reste maintenant le probleme de la couleur j'ai essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            vLine.OlePropertyGet("Line").OlePropertySet("SchemeColor", 22);
    ou
            vLine.OlePropertyGet("Line").OlePropertySet("ForeColor", 22);
    ou
            vLine.OlePropertyGet("Line").OlePropertySet("Color", 22);
    Chaque fois j'ai une erreur.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  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
    Points : 3 766
    Points
    3 766
    Par défaut
    Je viens de trouver comment changer la couleur, et cerise sur le gateau comment rendre visible ou invisible la ligne.
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // on selectionne la feuille
    Variant vLine;
            vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
    // pour les donnees (1, 1, 100, 100) il faut lire X, Y, X1, Y1
    // X, Y point de depart de la ligne X1, Y1 point d'arrivee de la ligne
            vLine = vWorksheet.OlePropertyGet("Shapes").OleFunction("AddLine", 1, 1, 200,100);
            vLine.OlePropertyGet("Line").OlePropertySet("Weight", 8); // epaisseur de la ligne
            vLine.OlePropertyGet("Line").OlePropertyGet("ForeColor").OlePropertySet("SchemeColor", 22); // couleur de la ligne
            vLine.OlePropertyGet("Line").OlePropertySet("Visible", false);
            vLine.OlePropertyGet("Line").OlePropertySet("Visible", true);
    //
    La je me suis trouve exellent.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Si je me fie à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.ShapeRange.Line.Forecolor.SchemeColor = 22
    ce serait peut-être plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vLine.OlePropertyGet("Line").OlePropertyGet("Forecolor").OlePropertySet("SchemeColor", 22);
    (Forecolor ou ForeColor) ?

    [Edit]Ah ben tu as trouvé entre temps, félicitations

  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
    Points : 3 766
    Points
    3 766
    Par défaut
    Ricky81 a ecrit:
    Ah ben tu as trouvé entre temps, félicitations
    Merci pour ton aide Ricky81.
    Je commence a comprendre comment est articule la programmation OleExcel, en la comparent a VBE il y a des similitudes.
    J'ai encore quelques essais a faire sur les objets de dessin, j'ai un logiciel que j'ai developpe, et qui fonctionne au boulot en VBE, je vais essayer de le readapter.
    Il y a des formes que l'on peut appeler, il y a des boutons d'appel de dessin qui se substituent a la barre d'outils, et le rajout de menus deroulants, des postes en perspective.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tracer une ligne avec la souris (AS3) ?
    Par leoncap dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 26/04/2010, 16h46
  2. [MySQL] Probleme pour intérroger une base avec "%" (Tous)
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/04/2008, 13h03
  3. Réponses: 3
    Dernier message: 07/08/2006, 11h25
  4. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 16h33
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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