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 :

C++ Builder et Excel


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut C++ Builder et Excel
    Bonjour,

    J'ai lu un peu la FAQ et regarder un peux les objets de c++ builder et j'ai envie de commencer a travailler avec borland et excel. C'est a dire pour commencer j'aimerais savoir ecrire dans une cellule etc... Pourrais-t-on maider deja pour commencer ? Je suis vraiment au point "0" et avec la FAQ je n'arrive pas a me débrouiller.

  2. #2
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Déjà tu commence par créer ton instance d’Excel Ici

    Ensuite tu définis si Excel est visible ou non par l’utilisateur : Ici

    Tu définis si l’utilisateur peut intéragir avec Excel : ici

    Il te faut ensuite récupérer l’ensemble des classeurs Ouverts : ici

    Il te faut Ensuite ajouter un classeur à ton ensemble de classeurs : ici

    Il te faut ensuite récupérer l’ensemble des feuilles de ton classeur : ici

    Ensuite, il te faut accéder à la première feuille de ton classeur : ici


    Te voila avec Excel ouvert sur une feuille de calcul

    Maintenant, pour par exemple écrire sur la Cellule A1, tu fait ceci

    Tu récupère la Cellule dans laquelle tu veut écrire : ici

    La valeur de vWsRange sera A1

    Tu écrit ta valeur : ici


    Après pour fermer Excel, tu fait ceci

    Fermer le classeur ouvert : ici

    Fermer Excel : ici

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    Que ferais-je sans toi kurul1 ? Je vais tester tout ca et je te redis !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    Dès la création de l'instance j'ai un problème (Désolé je débute assez)... La première ligne je dois la mettre tout au début de mon code pour que se soit une variable globale et la deuxième ligne je dois la mettre comme si c'était une fonction ?

  5. #5
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Pour chaque opération, tu réutilise pratiquement à chaque fois le Variant de l'instruction précédente, donc il faut que tous tes variants soit accessibles

    Moi personnellement, je me suis fait une petite classe qui va bien et qui gère tout. Ansi j'ai accès a tout

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    Tout ce code que j'ai copier est-il obligatoir ou j'ai fait quelque chose a double? Peux-tu m'expliquer a quoi servent ces lignes car je ne comprend absolument rien :S
    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
       Variant vXLWorkbooks;
       Variant vMSExcel;
       Variant vXLWorkbook;
       Variant vWorksheets;
       Variant vWorksheet;
       Variant vWsPos ;
       Variant vCell;
       Variant vWsRange ;
       vMSExcel = Variant::CreateObject("Excel.Application");
       vMSExcel.OlePropertySet("Visible", false);
       vMSExcel.OlePropertySet("Interactive", false);
       vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
       vWorksheets = vXLWorkbook.OlePropertyGet("Worksheets");
       vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", vWsPos);
       vCell = vWorksheet.OlePropertyGet("Range", vWsRange);
    Merci d'avance

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 61
    Points
    61
    Par défaut
    Bonjour El-Diablo,

    Essaye le code suivant, chez moi cela fonctionne très bien...
    Au préalable, j'ai un classeur EXCEL déjà créé
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //-------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     
     vMSExcel = Variant::CreateObject("Excel.Application");
      vMSExcel.OlePropertySet("Visible", true);
     
      //Ouverture d'un classeur existant
      vFileName = "C:\\TOURNOI JUDO\\Data\\Tournoi.xls";
      vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
      vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName);
     
      //Ouverture de la FICHE DE CALCUL     : Naissance
      //du CLASSEUR                                : Tounoi.xls
      vSheetName = "Naissance";
      vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets",vSheetName);
     
       vRange ="B2";
       vCell = vWorksheet.OlePropertyGet("Range",vRange);
     
       //Conversion de la CHAINE CARACTERE NaisPous1 en nombre ENTIER
       //Attention au format de cette donnée ! 
       //Affectation de cette valeur en B2
       vValCell = StrToInt(NaisPous1->Text);
       vCell.OlePropertySet("Value",vValCell);
     
      //Sélection de la cellule B3
      vRange ="B3";
      vCell = vWorksheet.OlePropertyGet("Range",vRange);
     
      //Conversion de la CHAINE CARACTERE NaisPous2 en nombre ENTIER
      //Affectation de cette valeur en B2
      vValCell = StrToInt(NaisPous2->Text);
      vCell.OlePropertySet("Value",vValCell);
     
      //Sauvegarde Fichier
       vXLWorkbook.OleProcedure("Save");
     
      //Fermeture de l'application EXCEL
      vMSExcel.OleFunction("Quit");
      //Libére la variable vMSExcel
      vMSExcel = Unassigned;
     
    }
    En espérant que cela t'aide...

  8. #8
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Citation Envoyé par El-Diablo- Voir le message
    Tout ce code que j'ai copier est-il obligatoir ou j'ai fait quelque chose a double? Peux-tu m'expliquer a quoi servent ces lignes car je ne comprend absolument rien :S
    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
       Variant vXLWorkbooks;
       Variant vMSExcel;
       Variant vXLWorkbook;
       Variant vWorksheets;
       Variant vWorksheet;
       Variant vWsPos ;
       Variant vCell;
       Variant vWsRange ;
       vMSExcel = Variant::CreateObject("Excel.Application");
       vMSExcel.OlePropertySet("Visible", false);
       vMSExcel.OlePropertySet("Interactive", false);
       vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
       vWorksheets = vXLWorkbook.OlePropertyGet("Worksheets");
       vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", vWsPos);
       vCell = vWorksheet.OlePropertyGet("Range", vWsRange);
    Merci d'avance
    Non c'est bon simplement, il faut que tu définisse vWsPos avec le numéro de la feuille dans laquelle tu veux écrire, et vWsRange le nom de la cellule dans laquelle tu veux écrire

  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
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut El-Diablo-:
    kurul1 et lenrok ton montre ce qu'il te faut, je vais juste te donner un lien sur le site d'un Tuto que je te conseille de lire
    il faut que tu définisse vWsPos avec le numéro de la feuille dans laquelle tu veux écrire
    Juste un complement vWsPos peut prendre un numero de position comme la ecrit kurul1, soit le nom par default donne par Excel "Feuil1" soit le nom que tu a donne a cette feuille en la renommant
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

Discussions similaires

  1. MyReport Builder - Macro Excel
    Par DevBaldwin dans le forum Autres outils décisionnels
    Réponses: 2
    Dernier message: 21/07/2015, 14h14
  2. [XL-2010] code pour importer un requete de report builder vers excel (dynamics)
    Par chafoo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/01/2015, 11h09
  3. Report Builder vs Excel
    Par fcavalli dans le forum SSRS
    Réponses: 0
    Dernier message: 21/06/2010, 21h27
  4. c++ builder fermeture fichier Excel
    Par william_vdb dans le forum C++Builder
    Réponses: 10
    Dernier message: 10/11/2006, 16h40
  5. Petit prob avec l'OLE EXCELL sous builder
    Par vladi dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/03/2005, 19h30

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