Comment bouger une feuille dans une appli Excel

Comment bouger une feuille dans une appli Excel - Delphi/Pascal - Programmation

Marsh Posté le 16-05-2005 à 12:08:33    

Bonjour,
je suis en train de développer une appli qui remplit automatiquement un fichier Excel (piloté avec un objet OLE).
Or je cherche à bouger les feuilles du workbook.
Et là, c'est le drame.
La commande VB qui permet ça est Move After (avec un espace entre le Move et l'After). Donc, quand je cherche à l'utiliser en Delphi, il ne saisit pas la syntaxe.
Je voulais donc savoir si quelqu'un connaissait une autre manière de bouger les feuilles d'un fichier Excel piloté par un objet OLE.
Merci pour toutes les informations.
 
Aspi Brach

Reply

Marsh Posté le 16-05-2005 à 12:08:33   

Reply

Marsh Posté le 18-09-2006 à 15:28:23    

Bonjour ,
 
J'ai le même problème.
Comment copier une nouvelle feuille dans un classeur EXCEL?
J'ai trouvé comment le créer vierge, le nommer, mais pas comment recopier un onglet existant .
 
Quelqu'un at-t-il la réponse ?
 
Isama.
 

Reply

Marsh Posté le 18-11-2006 à 00:47:14    

// 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;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed