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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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