var
ExcelApp : Variant;
OleWorkBook : Variant;
Sheet: OLEVariant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Workbooks.Open( ExtractFilePath(Application.ExeName)+'Mon fichier.xls');
ExcelApp.Visible := true;
Sheet := ExcelApp.Workbooks[ExtractFileName(ExtractFilePath(Application.ExeName)+'Mon fichier.xls')].WorkSheets[1];
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
j:=strtoint(edit1.Text); i:=1; While not(OleApplication.Cells[j,I].Formula = '') do Inc(i); OleApplication.Cells[j,i-1].select; OleApplication.Selection.Interior.ColorIndex :=20;
procedure TForm1.BtnSelectClick(Sender: TObject); var OpenDlg: TOpenDialog; OleApplication : Variant; OleWorkBook : Variant; NbrRec,NbrCol,I:Integer; XlsFileName:ShortString; {===============================================================} function ColExcel(Col : Integer) : ShortString; begin If Col > 26 then Result := Chr(64 + Trunc(Col/26)) + Chr(64 + (Col - (26 * Trunc(Col/26)))) else Result := Chr(64 + Col); end; {===============================================================} begin OpenDlg := TOPenDialog.Create(nil);//crée de la boite de dialogue OleApplication := CreateOleObject('Excel.Application'); //Crée du lien OLE Try OpenDlg.Title := 'Ouvrir un fichier excel';//renommer la boite OpenDlg.Filter:= 'Fichiers Excel (*.xlsx;*.xls)|*.xlsx;*.xls'; //filtrer la boite pour tout les fichiers excel If OpenDlg.Execute then begin XlsFileName:= (OpenDlg.FileName); OleWorkBook := OleApplication.Workbooks.Open(XlsFileName);//Ouvrir le fichier voulu {Pour Choisir une feuille dans le classeur } OleWorkBook.Worksheets.Item['Feuil1'].activate;//oub bien ['Feuil2'] etc.. OleApplication.Visible:=False; NbrCol:=0; While not(OleApplication.Cells[1,NbrCol+1].Formula = '') do //pour recuperer le nbre des colonnes Inc(NbrCol); NbrRec := 0; While not(OleApplication.Cells[NbrRec+1,1].Formula = '') do //pour recuperer les lignes Inc(NbrRec); OleApplication.Range['A1:'+ColExcel(NbrCol)+IntToStr(NbrRec)].Select; OleApplication.Selection.Interior.ColorIndex :=15; //pour colorier la plage de selection End; finally OpenDlg.Free; //Libératerela boite de dialogue OleApplication.Visible:=true; //rendre Excel Visible end; end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprocedure TForm1.Button1Click(Sender: TObject); var OpenDlg: TOpenDialog; OleApplication : Variant; OleWorkBook : Variant; XlsFileName:ShortString; {========================================================================} Function ColExcel(Col : Integer) : ShortString ; var EntCol ,a,k,i,j : Integer; c :Double ; begin case Col of //1 ere cas A..Z 1..26: Result := Chr(64 + Col); //2 eme cas de AA..ZZ 27..702: begin Col := Col - 26 ; EntCol := Trunc(Col / 26); If EntCol-Trunc(Col / 26) > 0 Then EntCol:= EntCol - 1 ; i := Col - (EntCol * 26) ; If i = 0 Then begin EntCol:=EntCol-1; i := 26 ; End ; Result:= Chr(65 + EntCol) + Chr(64 + i) ; End ; //3 eme cas AAA..ZZZ 703..16384: begin Col := Col - 702 ; c := Col / 676 ; EntCol:= trunc(c) ; c := EntCol - c ; If c > 0 Then EntCol:= EntCol - 1 ; j := EntCol ; k := Col - (EntCol * 676); If k = 0 Then begin j := j - 1 ; k := 676 ; End ; c :=k / 26 ; EntCol := Trunc(c) ; c := EntCol - c ; If c > 0 Then EntCol := EntCol - 1 ; a := EntCol ; i := k - (EntCol * 26) ; If i = 0 Then begin a := a - 1 ; i := 26 ; End; Result := Chr(65 + j) + Chr(65 + a) + Chr(64 + i); End ; End; end; {========================================================================} begin OpenDlg := TOPenDialog.Create(nil);//crée de la boite de dialogue OleApplication := CreateOleObject('Excel.Application'); //Crée du lien OLE Try OpenDlg.Title := 'Ouvrir un fichier excel';//renommer la boite OpenDlg.Filter:= 'Fichiers Excel (*.xlsx;*.xls)|*.xlsx;*.xls'; //filtrer la boite pour tout les fichiers excel If OpenDlg.Execute then begin XlsFileName:= (OpenDlg.FileName); OleWorkBook := OleApplication.Workbooks.Open(XlsFileName);//Ouvrir le fichier voulu {Pour Choisir une feuille dans le classeur } OleWorkBook.Worksheets.Item['Feuil3'].activate;//oub bien ['Feuil2'] etc.. OleApplication.Visible:=False; OleApplication.Range['A1:'+ ColExcel(16384)+'7'].Select; OleApplication.Selection.Interior.ColorIndex :=20; //pour colorier la plage de selection OleApplication.Cells[1,16384].select; End; finally OpenDlg.Free; //Libératerela boite de dialogue OleApplication.Visible:=true; //rendre Excel Visible end; end;