Question concernant Borland C++ Builder 6 et Excel [Résolu]

Messages postés
63
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
25 novembre 2005
- - Dernière réponse : salim1977
Messages postés
1
Date d'inscription
lundi 21 mars 2005
Dernière intervention
26 avril 2005
- 26 avril 2005 à 17:12
Bonjour,

Je suis en stage et le sujet est d'extraire des données d'un logiciel pour les envoyer vers Excel afin d'imprimer ces même données. Le tout doit se faire en C++.
J'utilise donc Borland C++ Builder 6.

Pour l'instant, j'arrive à ouvrir Excel et à écrire dans les cellules, puis sauvegarder le tout et fermer Excel.

Pourtant lorque j'essaye d'ouvrir un fichier Excel, le message d'erreur suivant s'affiche:

" Project Project1.exe raised exception class EAccessViolation
with message 'Access violation at address 004045DA in module 'Project1.exe'. Read of address FFFFFFF4'. Process stopped. Use Step or Run to continue."

Pour mieux comprendre voici le code:
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Variant vMSExcel;
Variant vFileName, vXLWorkbooks, vXLWorkbook;
Variant vWorksheet, vSheetName;
Variant vValue, vRange, vCell;
AnsiString aValue;

// Ouverture d'un classeur existant
vFileName = "c:\\Home\\Sources\\Cpp\\Test\\Excel\\classeur1.xls";

vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName);

// Accéder à une feuille de calcul
vSheetName = "Feuil1";
vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets",vSheetName);

// Lire le contenu d'une cellule
vRange = "D3";
vCell = vWorksheet.OlePropertyGet("Range", vRange);
aValue = vCell.OlePropertyGet("Value");
Label1->Caption=aValue;
}

Le programme planterais donc à la ligne rouge...

Si quelqu'un à la moindre idée, qu'il réponde à ce poste...;

Merci d'avoir lu ce message.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
74
Date d'inscription
jeudi 6 mars 2003
Dernière intervention
3 mai 2006
3
Merci
Salut,

Il semble que ça vienne de ta variable vMSExcel. Elle n'est pas initialisée quand tu fais appel à sa methode OlePropertyGet



Il faudrait l'initialiser avec :



vMSExcel = Variant::CreateObject("Excel.Application");

DvdMizo

Merci Dvdmizo 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Dvdmizo
Messages postés
63
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
25 novembre 2005
0
Merci
Merci!!!
Commenter la réponse de speeddo
Messages postés
1
Date d'inscription
lundi 21 mars 2005
Dernière intervention
26 avril 2005
0
Merci
Commenter la réponse de salim1977

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.