Bonjour

Je tente de transformer un fichier .xls en un fichier .csv. Pour cela j'ouvre Excel et demande à enregistrer le fichier en csv

Voici mon code :

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
 
Variant vMSExcel;
Variant vWorksheet, vSheetName;
Variant  vXLWorkbooks, vXLWorkbook, vReadOnly, vLink;
 
void __fastcall TForm1::CreerCSV()
{
    AnsiString Path = ExtractFileDir(ParamStr(0));
    AnsiString FileName = Path +"\\~Courbes.xls";
 
    vMSExcel = Variant::GetActiveObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", false);
 
    //Ouvre Excel en lecture seul
    vLink = Unassigned;
    vReadOnly = true;
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", FileName.c_str(), vLink, vReadOnly);
 
 
    //Placer dans la fiche Liste
    vSheetName = "LISTE";
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets",vSheetName);
 
    //Enregistrer au format CSV
    vXLWorkbook.OleProcedure("Saveas", Path+"\\~Courbes.csv");
 
    //Ferme Excel
    vMSExcel.OleFunction("Quit");
    vMSExcel = Unassigned;
 
}
Mais je n'arrive pas à tester cette fonction car j'ai l'erreur suivante :
[C++ Erreur] sysvari.h(1877): E2015 Ambiguïté entre 'TVariantT<tagVARIANT>::operator =(const TVariantT<tagVARIANT> &)' et 'TVariantT<tagVARIANT>::operator =(bool)'.

Auriez vous une idée pour supprimer cette erreur?
Est ce que le principe d'obtention du fichier csv est bon?

merci de votre aide