Copie de fichiers excel????

[Résolu]
Signaler
Messages postés
299
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
slt tlm;
j'ai utilisé la fonction :
CopyFile('C:\dell\exc001.xls','C:\dell\exc002.xls', FALSE);
mais apparemment ça ne marche pas!
y a t il une autre solution??

5 réponses

Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Ou alors, si j'ai tout bien compris :

si exc001.xls existe alors
    supprime exc001.xls
enregistre sous exc001.xls // (<- dans tous les cas...)

Non ?
Messages postés
299
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
1
slt tlm;
je vais vous expliquer le tout avec des détails,
je veux enregistrer des données de ma base dans un fichier excel, et à chaque fois que je fais cet enregistrement, je veux que le dernier fichier excel s'écrase avec les nouvelles valeurs sans que WINDOWS ne m'affiche une alèrte ou quoique ce soit!
voici mon code :
///////////////////

var
  Form1: TForm1;
  OleApplication :variant;
  OleWorkBook :variant;
  bb,ff:boollean;
...........
 OleApplication := CreateOleObject('Excel.Application');
OleWorkBook:=OleApplication.Workbooks.Add;
...............
OleWorkBook.SaveAs['C:\dell\exc002.xls'];
 if FileExists('C:\dell\exc001.xls') then {verfification si ça été déjà fait pour une première fois!}
      begin
       bb:=CopyFile('C:\dell\exc001.xls','C:\dell\exc002.xls', FALSE);
      end
     else OleWorkBook.SaveAs['C:\dell\exc001.xls'];
   OleApplication.Quit;
   OleApplication := unassigned;
   ff:=DeleteFile('C:\dell\exc002.xls');{au fait ce fichier exc002.xls n'est utilisé que pour l'écrasement c'est tout}
///////////////////////
le pb c'est que le supression du exc002.xls ne marche pas lorsque le fichier  exc001.xls existe et aussi même  la copir ne merche pas, au fait je veux que  àa soit un  écrasement quoi...sans alerte!

merci beaucoup pour votre aide!

Heu en analysant ta question (faire une copie de sauvegarde) et en regardant ton code je me dis qu'un truc ne va pas dans ton raisonnement.

Si tu veux écraser ton fichier par un autre :
If FileExists('myfile.xls') then
Begin
CopyFile(PChar('MyFile.xls'),PChar('Mycopy.xls'), FALSE);//Ne pas oublier PChar. On fait une copie de sauvegarde mais pas obligatoire : à toi de voir
DeleteFile('MyFile.xls');//On supprime MyFile.xls
End;
OleWorkBook.SaveAs['MyFile.xls'];//Création de mon fichier

D'une façon générale pour effacer un fichier il faut que ce dernier ne soit pas utiliser : à toi de le libérer (et c'est là que se trouve surement le beug)
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
J'ai la nette impression qu'il y a un problème de logique de traitement...
A moins d'avoir la berlue, je dirais que dans tous les cas, exc001.xls est identique à exc002.xls. D'où l'impression que la copie ne fonctionne pas.

Me tromperai-je ?

Ne serait-il pas plus logique de procéder ainsi :
si exc001 existe alors
  enregistrer sous exc002
  supprimer exc001
sinon
  enregistrer sous exc001

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Japee : tu oublies de tenir compte du fait que le classeur exc001.xls est ouvert dans Excel à ce moment là et ça m'étonnerait fort qu'Excel te laisse le supprimer.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.