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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| void __fastcall TForm1::Bp_LancerClick(TObject *Sender)
{
//Ouvre Excel, Charge le fichier *.xls, Met en forme le fichier, Sauvegarde
bool res;
Variant vCopy,vDestination;
AnsiString aDestination;
try
{
vMSExcel = Variant::GetActiveObject("Excel.Application");
}
catch(...)
{
vMSExcel = Variant::CreateObject("Excel.Application");
}
vMSExcel.OlePropertySet("Visible", true);
vMSExcel.OlePropertySet("ScreenUpdating", true);
Excel = 1;
//Ouverture du ou des fichiers
Variant title = StringToOleStr("Ouvrir"); // titre à donner à la boite de dialogue
Variant multiselect = true; // selection multiple autorisée
fichier = ExcelApplication1->GetOpenFilename(EmptyParam, EmptyParam, title, EmptyParam, multiselect, 0);
if(fichier.IsArray())
{
lirets->Enabled = true;
test->Enabled = true;
derlin->Enabled = true;
Lire->Enabled = true;
Miseenforme->Enabled = true;
Filtre->Enabled = true;
test->Enabled = true;
for(j=1 ; j<=fichier.ArrayHighBound(1) ; j++)
{
vFileName = fichier.GetElement(j);
vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName);
vMSExcel.OlePropertySet("DisplayAlerts", false);//Désactive les alertes
vMSExcel.OlePropertySet("WindowState", -4140);//Minimise la fenêtre Excel
//Mise en Forme
iLigneLimite = CompteurLigne(vXLWorkbook);
i=1;k=1;
do
{
vCol=StringToOleStr("B");
vLin=StringToOleStr((AnsiString)i);
vWsRange=vCol+vLin;
vCell = vWorksheet.OlePropertyGet("Range", vWsRange);
aCell=vCell;
if((aCell=="")||(aCell=="Heure"))
{
iLinSupp=i;
vLin=StringToOleStr((AnsiString)iLinSupp);
vRow=vWorksheet.OlePropertyGet("Rows", vLin);
vRow.OleProcedure("Delete", -4162);
}
else
{
i++;
}
k++;
}
while(k<=iLigneLimite);
if(j>1)
{
iLigneLimite = CompteurLigne(vXLWorkbook);
vCol=StringToOleStr("A");
vLin=StringToOleStr((AnsiString)iLigneLimite);
vDestination = vCol+vLin;
//Memo1->Text = vDestination;
vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
vWorksheet.OleProcedure("Paste",vDestination);
}
vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
vUsedRange = vWorksheet.OlePropertyGet("UsedRange");
vCopy = vUsedRange.OleFunction("Copy");
}
//vFileName="c:\\affsiam\\transfert.xls";
//vXLWorkbook.OleFunction("Saveas", vFileName);
vMSExcel.OlePropertySet("ScreenUpdating", true);
}
} |
Partager