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 avec excel


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    D�cembre 2007
    Messages
    37
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2007
    Messages : 37
    Par d�faut probleme avec excel
    Bonjour,
    Je souhaite ouvrire le logiciel Excel afin d'�crire dans une cellule.
    Le probleme est que lorsque je lance le programme(appuye sur le button2),excel s'ouvre et se referme automatiquement.(Bref apparition en bas de la fen�tre).Ensuite si j'appuye sur les autres boutons une erreur arrive:
    "_ASSERTE: IsBound() @ c:\bcb\emuvcl\utilcls.h/4249 Press [Y]es to termine [N]o to continue [C]ancel to debug".

    Voici mon programme:


    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
    56
    57
    58
    59
    60
    61
    62
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include <utilcls.h>
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "PERFGRAP"
    #pragma link "Excel_2K_SRVR"
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
     
    //-------------------------------------------------------------------------
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Variant vMSExcel;
    ExcelApplication1->Connect();
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    Variant vMSExcel;
    vMSExcel.OleFunction("Quit");
    vMSExcel = Unassigned;
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Variant vFileName,vXLWorkbook;
     
    vFileName = "c:\\test.xls";
    vXLWorkbook.OleProcedure("Saveas", vFileName);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button6Click(TObject *Sender)
    {
    Variant vValue, vRange, vCell,vWorksheet;
     
    vRange = "D3";
    vCell = vWorksheet.OlePropertyGet("Range", vRange);
    vValue = "valeur de la cellule";
    vCell.OlePropertySet("test", vValue);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    Variant vWorksheet, vSheetName,vXLWorkbook;
     
    vSheetName = "Feuil2";
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets",vSheetName);
    }
    Je ne voit pas ou peut venir l'erreur !!!?
    Merci

  2. #2
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Je ne sais pas si cela peut venir de cela mais Ton variant vMSExcel dans ton Bouton2, tu le d�clare dans la fonction de ton bouton donc d�s que la fonction se termine, il n'a plus d'existance.

    As-tu essay� de le d�clarer en global dans ta form.

  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
    Par d�faut
    Salut jojolastar27
    C'est pire que ce que kurul1 avait detecte, deja tu utilise un composant avec OleExcel, tu declare toutes tes variable en prive, tu ne fini aucun de tes morceaux de code.
    OleExcel demande beaucoup de rigueur, il faut avoir un plan bien structure avant de commancer a programmer, et surtout proceder de bout de code en bout de code, sinon c'est pratiquement insoluble, voici donc ce que je pense que tu desire
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include <utilcls.h>
    /*
    ceci est inutile
    #pragma link "PERFGRAP"
    #pragma link "Excel_2K_SRVR"
    */
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    Variant vMSExcel, vXLWorkbooks, vXLWorkbook, vWorksheet;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Add");
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
            // on selectionne la Feuil1
            // vWorksheet.OleProcedure("Select");
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    vMSExcel.OleFunction("Quit");
    vMSExcel = Unassigned;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Variant vFileName;
    vFileName = "c:\\test.xls";
    vXLWorkbook.OleProcedure("Saveas", vFileName);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    Variant vValue, vRange, vCell;
    vRange = "D3";
    vCell = vWorksheet.OlePropertyGet("Range", "D3");
    vValue = "valeur de la cellule";
    vCell.OlePropertySet("Value", vValue);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button6Click(TObject *Sender)
    {
    Variant vSheetName;
    vSheetName = "essai2";
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 2);
    vWorksheet.OleProcedure("Select");
    vXLWorkbook.OlePropertyGet("Worksheets", 2).OlePropertySet("Name", vSheetName);
    }
    //---------------------------------------------------------------------------

  4. #4
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Moi je sais que j'ai gal�r� au d�but quand j'ai commencer.
    Maintenant ca va mieux car je me suis cr�er une classe toute faite qui g�re tout cas et du coup je n'ai plus qu'a la r�utiliser.
    J'ai d'ailleurs toujours un probl�me au niveau de l'indicage des colonne du fait que ce soit des lettres et j'ai quelques rat�, mais dans l'ensemble, ca marche plut�t bien.

  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
    Salut kurul1
    Si tu utilise les coordonnees du style "A1", tu aura quelque chose comme ceci "OlePropertyGet("Range", "A1"), si c'est du style ligne1, colonne1, tu utilise ceci "OlePropertyGet("Cells",1,1)", ce qui revient au meme

  6. #6
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    j'utilise le style A1 mais j'ai des difficult�s pour certaines colonnes a reconstruire l'adresse exacte.

    Et si j'utilise en L1C1, je n'ai plus les lettres d'affich� comme par d�faut dans Excel

  7. #7
    Membre averti
    Inscrit en
    D�cembre 2007
    Messages
    37
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2007
    Messages : 37
    Par d�faut
    Merci les mec pour vos r�ponses !!

    Bravo blondelle ,sa marche comme je le souhaitait!! merci de ta rapidit�



    j'ai oublier une petite question !!
    Comment je peut faire descendre une ligne dans une boucle for:

    j'ai tester sa ,mais a marche pas !!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    Variant vValue, vRange, vCell;
     
    for(int i=0;i<3;i++)
    {
    vCell = vWorksheet.OlePropertyGet("Cells",i,1);
    vValue = "valeur de la cellule";
    vCell.OlePropertySet("Value", vValue);
    }

  8. #8
    Membre averti
    Inscrit en
    D�cembre 2007
    Messages
    37
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2007
    Messages : 37
    Par d�faut
    non c'est bon!! Erreur b�te ...
    for(int i=1:i<3;i++)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probleme avec Excel 2010
    Par Tuanou dans le forum Macros et VBA Excel
    R�ponses: 0
    Dernier message: 16/06/2011, 15h54
  2. Problem avec Excel save
    Par DreamCatcher84 dans le forum C#
    R�ponses: 1
    Dernier message: 02/01/2011, 03h56
  3. [SP-2007] probleme avec excel services
    Par me_yassine dans le forum SharePoint
    R�ponses: 4
    Dernier message: 22/12/2009, 11h29
  4. [Excel] Probleme avec Excel.Application
    Par Jack_serious dans le forum G�n�ral Dotnet
    R�ponses: 9
    Dernier message: 12/01/2008, 17h31
  5. problème avec Excel
    Par LE NEINDRE dans le forum Modules
    R�ponses: 3
    Dernier message: 08/02/2006, 23h08

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