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

Résolu
Signaler
Messages postés
67
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005
-
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
-
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

Messages postés
48
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
24 mars 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
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
Messages postés
67
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

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
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
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