Besoin de l'aide d'un expert, car j'ai un pb avec les boites de dialogues

Résolu
pier0 Messages postés 67 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005 - 19 juil. 2005 à 15:09
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 - 19 juil. 2005 à 17:47
En fait je réalise un programme qui récupère un fichier .CSV le convertit en .XLS et effectue un traitement sur les données.
Mais voila au moment ou je sauvegarde (sous le nom report.xls) il faudrait que j'écrase l'ancien fichier report.xls sans faire apparaitre la boite de dialogue "le fichier que vous voulez enregistrer existe deja, voulez vous le remplacer?..." car mon programme doit s'effectuer le plus rapidement possible.
j'ai penser à écrire une fonction qui teste si le fichier existe déja avant la sauvegarde mais je sais pas si c'est la meilleur méthode?
Ne peut on pas sauvegarder en remplacant directement le fichier existant sans faire apparaitre de boite de dialogue si il existe déja avec
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\pbirr\Desktop\Report.xls", FileFormat _
:=xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
D'autre part si quelqu'un s'y connait bien en optimisation ca serait bien qu'il me contacte car j'aurait un source à optimiser à lui soummettre...

Merci de venir à mon secours!!!!!!

4 réponses

cs_David_wklw Messages postés 48 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 24 mars 2006
19 juil. 2005 à 16:34
Hello,

Pour otpimiser, tu bloques deja l'update du display :

Application.ScreenUpdating=false .. ou qqchose comme cela....

ensuite lorsque tu lances l'enregistrement du fichier, tu bloques le displayalerts
application.DisplayAlerts=false

ensuite, en fin de macro, tu repasses les deux trucs en true :

Application.ScreenUpdating=true
application.DisplayAlerts=true

Sinon, il y a certainement un argument dans ta ligne de fonction qui te permet de faire un overwrite... mais là j'ai plus le temps de te le pondre...

A+
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
19 juil. 2005 à 16:20
Bonjour,

Une question, parce que je viens de faire des essais, dans quoi
recupère tu ton fichier csv et ensuite dans quoi se trouve ton fichier
xls avant de l'enregistrer en fichier txt ?? Si c'est un classeur que
tu veux enregistrer en fichier txt, il est illisible ensuite à
l'ouverture avec le blocNotes.

jpleroisse
0
pier0 Messages postés 67 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
19 juil. 2005 à 17:04
Bonjour,
-Une question, parce que je viens de faire des essais, dans quoi recupère tu ton fichier csv?
Re: je récupère le fichier en .CSV puis je le traite à l'aide d'une macro et enfin je le sauve en .XLS.
-et ensuite dans quoi se trouve ton fichier xls avant de l'enregistrer en fichier txt ??
Re: le fichier.XLS que je viens de sauver a du remplacer un fichier .XLS du meme nom et mon pb est que ca se fasse sans que la boite de dialogue voulez vous remplacer le fichier existant? apparaisse.
-Si c'est un classeur que tu veux enregistrer en fichier txt, il est illisible ensuite à l'ouverture avec le blocNotes?
Re: ya pas de fichier txt dans l'histoire
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
19 juil. 2005 à 17:47
OK, autant pour moi, je ne saisi pas ou j'ai été trouver ce txt.

Alors voilà, pour supprimer le fichier existant et le remplacer par le nouveau fichier.

'Supprime le fichier existant

Kill "C:\Documents and Settings\pbirr\Desktop\Report.xls

'Crée le nouveau fichier sans ouvrir la boîte de dialogue

ActiveWorkbook.SaveAs Filename:= _

"C:\Documents and Settings\pbirr\Desktop\Report.xls", FileFormat _

:=xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _

False, CreateBackup:=False

WorkBooks.Close

Application.Quit



jpleroisse
0
Rejoignez-nous