Copie de fichiers excel????

Résolu
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 17 oct. 2006 à 16:47
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 18 oct. 2006 à 19:13
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

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 oct. 2006 à 12:57
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 ?
3
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
17 oct. 2006 à 18:57
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!
0
Utilisateur anonyme
17 oct. 2006 à 21:33
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)
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
17 oct. 2006 à 22:51
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
18 oct. 2006 à 19:13
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.
0
Rejoignez-nous