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 :

type variable incorrect excel stringgrid


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Inscrit en
    Juillet 2010
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par d�faut type variable incorrect excel stringgrid
    Bonsoir,
    j'utilise le code ci dessous dans un bouton pour transferer le contenu d'une strnggrid dans une feuille Excel .Lors de l'ex�cution j'ai un message me disant :
    type de variable incorrect
    voici le code .qu'est ce qui lui manque??
    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
    Variant vMSExcel,vXLWorkbook,vXLWorkbooks,vFileName,vSaveChanges,vWorksheet,vWsName,vWorksheets,vCell,vValue;
     
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
    vFileName = "c:\\FichiersMouvements\\Statistiques.xls";
     
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
     
    // vXLWorkbooks représente l'ensemble des classeurs
    // vFileName est un Variant sous la forme chaîne de caractères correspondant au fichier à ouvrir
    vXLWorkbook =vXLWorkbooks.OleFunction("Open",vFileName); // on récupère un Variant correspondant au classeur ajouté
    vWsName="Chiffres";
    try {
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", vWsName);
    // vWsName est un Variant initialisé au nom de la feuille
    } catch (...) {
    	 vWorksheets = vXLWorkbook.OlePropertyGet("Worksheets");
    	 vWorksheet = vWorksheets.OleFunction("Add");
    	 vWorksheet.OlePropertySet("Name", vWsName);
         }
    int n=SG->RowCount;
    int m=SG->ColCount;
     
    for (int i =1; i <n; i++) {
    for (int j =1; j <m; j++) {
     
    vCell = vWorksheet.OlePropertyGet("Cells", i,j);
    vValue=VarToStr(SG->Cells[0][i]);
    vCell.OlePropertySet("Value", vValue);
    }
    }
    vSaveChanges =true;
    vXLWorkbook.OleFunction("Close", vSaveChanges, vFileName);
    vMSExcel.OleFunction("Quit");
    vMSExcel = Unassigned;

  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 nezhaaem
    En mode pas a pas sur quelle ligne apparait ton erreur

  3. #3
    Membre confirm�
    Inscrit en
    Juillet 2010
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par d�faut
    salut blondelle
    je ne sais pas comment executer en mode pas � pas ....j'essaie avec la touche f8 mais quand j'appuie sur le bouton c'est tout son code qui s'execute puis il y a l'erreur ....comment savoir de quelle ligne il s'agit?

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Citation Envoy� par nezhaaem Voir le message
    salut blondelle
    je ne sais pas comment executer en mode pas � pas ....j'essaie avec la touche f8 mais quand j'appuie sur le bouton c'est tout son code qui s'execute puis il y a l'erreur ....comment savoir de quelle ligne il s'agit?
    Utilise F7 (pas � pas approfondi) plut�t que F8. Le diff�rence etant que F8 ne descend pas dans les sous-fonctions.

    Je n'ai pas tester ton code, mais d�ja tu peux remplacer:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    vValue =VarToStr(SG->Cells[0][i]);
    //Pourquoi utiliser VarToStr alors que tu as déja un AnsiString??
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    vValue = SG->Cells[0][i] ;
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    vValue = StringToOleStr(SG->Cells[0][i] ) ;

  5. #5
    Membre confirm�
    Inscrit en
    Juillet 2010
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par d�faut
    Merci pour ton aide
    je n'ai plus cette erreur mais j'ai une autre
    je l'ai post� dans une nouvelle discussion

Discussions similaires

  1. R�ponses: 10
    Dernier message: 21/04/2006, 18h23
  2. [TP] Constantes typées et non typées, variables
    Par poppels dans le forum Turbo Pascal
    R�ponses: 3
    Dernier message: 26/10/2005, 23h00
  3. locate - type variant incorrect
    Par lol_adele dans le forum Bases de donn�es
    R�ponses: 8
    Dernier message: 24/10/2005, 15h54
  4. import Excel --> Stringgrid de Delphi
    Par Homer dans le forum Langage
    R�ponses: 2
    Dernier message: 16/06/2004, 12h53
  5. Tableau d'�l�ments de type variable
    Par Drooxy dans le forum Langage
    R�ponses: 4
    Dernier message: 16/03/2003, 15h20

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