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

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

3 réponses

Répondre au sujet
Dvdmizo 74 Messages postés jeudi 6 mars 2003Date d'inscription 3 mai 2006 Dernière intervention - 18 avril 2005 à 14:39
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Dvdmizo
speeddo 63 Messages postés jeudi 14 avril 2005Date d'inscription 25 novembre 2005 Dernière intervention - 18 avril 2005 à 16:10
0
Utile
Merci!!!
Commenter la réponse de speeddo
salim1977 1 Messages postés lundi 21 mars 2005Date d'inscription 26 avril 2005 Dernière intervention - 26 avril 2005 à 17:12
0
Utile
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.