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
|
Procedure Lire_Zone_A_Imprimer;
Var
Lecture_Seule, Pos_Cellule, Cellule_Pointee, Val_Cellule : variant;
Excel_App : variant; // Objet instance d'Excel (EXCEL.EXE)
Lst_Classeurs : variant; // Lst des classeurs exploités par Excel (maintenant ou AVANT. Liste sauvée ds le rép. de profil utilisateur)
Classeur_Cible : variant; // Classeur exploité
Feuille_Pointee : variant; // Feuille pointee
vLink : variant; // Désigne quoi ? Pointe quoi ? "Link" serait "lien" . Pas un pointeur, mais lien vers quoi ?
Nom_F : string;
Nom_Feuille : AnsiString;
begin
Lecture_Seule := True;
Nom_F := GetCurrentDir + '\' + 'CLASSEUR.XLS';
// Instancier Excel ---------------- // Ici : j'évite une gestion d'exception avec Tst_Process_Present() : si Excel est déjà lancé, pas de Create
if Tst_Process_Present('EXCEL.EXE') = False then
begin
Excel_App := CreateOleObject('Excel.Application'); // Lancer Excel
end
Else
begin
Excel_App := GetActiveOleObject('Excel.Application'); // Se connecter à l'instantce d''Excel si acif
end;
Excel_App.Visible := False;
// Ouvrir le classeur -------------------------
Lst_Classeurs := Excel_App.WorkBooks;
Lecture_Seule := True;
vLink := Unassigned;
Classeur_Cible := Lst_Classeurs.Open(Nom_F, vLink, Lecture_Seule);
// Sélectionner la feuille ------------------
Nom_Feuille := 'Impression';
Feuille_Pointee := Classeur_Cible.WorkSheets[Nom_Feuille]; // Le bug est ici V. plus bas le message d'erreur
// à partir d'ici, non encore débogué
// Pointer la cellule -------------------------
Pos_Cellule := 'A4';
Cellule_Pointee := Classeur_Cible.Worksheets.Range[Pos_Cellule];
Val_Cellule := Classeur_Cible.Worksheet.Cellule_Pointee.Value;
// Fermer le classeur
Excel_App.Quit;
Excel_App := UnAssigned;
end; |
Partager