Passage des paramètres utils à une fonction/procedures [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
5 mars 2015
-
korgis
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
-
Bonjour,

J'ai récupéré du code ou seuls les paramètres utilisés étaient passé a l'appel de la fonction. J'ai vu cela dans un source OLE Excel et la syntaxe est la suivante:

Ex.ActiveWorkBook.SaveAs(Filename := SaveAsFileName, FileFormat := 56);

Filename et FileFormat sont bien des paramètres du SaveAS mais lorsque je compile l'exemple sous Delphi 7 le compilateur rejette l'instruction avec le message:

identificateur non déclaré : 'Filename'

Existe-t-il un directive de compilation permettant cette syntaxe ?

Si quelqu'un connait la solution je serais bien content de la découvrir...

Merci d'avance.
Michel

4 réponses

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
11
Salut,

Tu peux poster la procédure complète ? (ou l'unité même...)

Simon
Messages postés
250
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
2 décembre 2019
5
Salut,
Le SaveAs d'un ActiveWorkBook ressemble plus à ceci sous D7:
procedure SaveAs(Filename: OleVariant; FileFormat: OleVariant; etc...);

Exemple d'utilisation
Ex.ActiveWorkBook.SaveAs(SaveAsFileName, 56, etc...); 

@+
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
10
Salut
Dans tous les cas la syntaxe delphi est mauvaise
au minimun cela doit ressemble à celà :
Ex.ActiveWorkBook.SaveAs(Filename := SaveAsFileName, FileFormat := 56); devient :
Ex.ActiveWorkBook.SaveAs(Filename :string = SaveAsFileName, FileFormat :integer = 56);

pas de := dans le passage de paramètres !
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
15
Salut,

Le 2ème paramètre est le format par défaut, il n'est donc pas forcément utile de le préciser.

La syntaxe correcte est celle-ci, 'C:\MonFichier.xls' étant le fichier de destination de la sauvegarde du classeur actif :

var
  FileName: string;
begin
  FileName := 'C:\MonFichier.xls'; // fichier que tu veux obtenir
  Ex.ActiveWorkBook.SaveAs(Filename);
end;


C'est tout simple...