// Voilà le code à adapter.
// J'ai fait ça de mémoire, je suis désolé je n'ai pas mon delphi avec moi.
// Bon courage les gars, et tenez-nous au courant.
//
// Petite astuce : faites des macro dans excel puis regardez leur code puis tentez de l'adapter en delphi; Sinon : aide VB d'Excel.
unit UForm1;
interface
uses
..., Variants, ComObj, Excel2000; // Je suis plus trés sûr pour les uses...
TForm1 = class(TForm)
...
procedure Create(Sender: TObject);
...
private
FExcelObject: Variant;
getClasseur(pIndex: Integer): Variant;
getFeuille(pIdxClasseur, pIdxFeuille: Integer): Variant;
...
public
DeplacerFeuille(pIdxClasseur, pIdxFeuilleAvant, pIdxFeuilleApres: Integer; pAvant: Boolean);
end;
implementation
procedure TForm1.Create(Sender: TObject);
begin
// Instanciatier un objet COM pour Excel.
try
// On prend l'objet COM excel qui existe déjà, ou...
FExcelObjet := GetActiveOleObject('Excel.Application');
except
// ...pas d'objet COM alors on le crée.
FExcelObjet := CreateOleObject('Excel.Application');
End;
FExcelObjet.Visible := True;
end;
function TForm1.getClasseur(pIndex: Integer): Variant;
begin
// vClasseur := FExcelObject.ActiveWorkBook; ou alors ...
Result := FExcelObject.WorkBooks[pIndex];
end;
function.TForm1.getFeuille(pIdxClasseur, pIdxFeuille: Integer): Variant;
begin
// vFeuille := vClasseur.ActiveWorkSheet; ou alors ...
Result := Self.getClasseur(pIdxClasseur).Worksheets[pIdxFeuille];
end;
procedure TForm1.DeplacerFeuille(pIdxClasseur, pIdxFeuilleAvant, pIdxFeuilleApres: Integer; pAvant: Boolean);
var
vFeuille : Variant;
begin
try
vFeuille := Self.getFeuille(pIdxClasseur, pIdxFeuilleAvant);
if pIdxFeuilleApres then
begin
vFeuille.Move(Self.getFeuille(pIdxClasseur, pIdxFeuilleApres));
end
else
begin
vFeuille.Move(Null, Self.getFeuille(pIdxClasseur, pIdxFeuilleApres));
end;
except
on e:exception do
begin
raise exception.Create('Erreur lors du déplacement de la feuille ' + IntToStr(pIdxFeuille) +e.Message);
end;
end;
end;
...
end;