Question concernant Borland C++ Builder 6 et Excel

Résolu
speeddo Messages postés 63 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 25 novembre 2005 - 14 avril 2005 à 11:16
salim1977 Messages postés 1 Date d'inscription lundi 21 mars 2005 Statut Membre 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.

3 réponses

Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006
18 avril 2005 à 14:39
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
3
speeddo Messages postés 63 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 25 novembre 2005 1
18 avril 2005 à 16:10
Merci!!!
0
salim1977 Messages postés 1 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 26 avril 2005
26 avril 2005 à 17:12
0
Rejoignez-nous