Macro pour fermer le fichier, puis le réouvrir

aurelien.francois

XLDnaute Nouveau
Bonjour, j'ai créé un fichier excel, puis je l'ai enregistrer en .xlt (pour éviter qu'il soit écrasé). Disons qu'il se nomme Compte.xlt
Quand je le lance, cela ouvre donc mon fichier en tant que Compte1.xls
Ensuite j'ai créé une macro qui fait que lorsque l'on clique sur un bouton, cela écrase le fichier .xlt pour le remplacer définitivement.
Le souci, c'est qu'il faudrait que ce fichier se ferme, puis se réouvre (sinon la personne travaillera directement sur le .xlt)
Cela est-il possible ?
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour fermer le fichier, puis le réouvrir

Bonjour aurelien.francois,

cela écrase le fichier .xlt pour le remplacer définitivement.
Le souci, c'est qu'il faudrait que ce fichier se ferme, puis se réouvre (sinon la personne travaillera directement sur le .xlt)

c'est parce que tu fais un SaveAs
as-tu essayé avec un SaveCopyAs ?
 

aurelien.francois

XLDnaute Nouveau
Re : Macro pour fermer le fichier, puis le réouvrir

Alors en fait je pensais que ça marchait, mais ça ne marche pas...
Mon code est le suivant :
Code:
Private Sub cboui_Click()
Application.DisplayAlerts = False
chemin = ActiveWorkbook.Path
fichier = "Compte d'escale automatisé.xlt"
ActiveWorkbook.SaveCopyAs (chemin & "/" & fichier)
Application.DisplayAlerts = True
Unload Me
End Sub

Lorsque la macro se lance, il est écrit en bas d'excel "sauvegarde de fichier temporaire", le problème peut venir de là...
Ou alors cela vient du fait que c'est déjà un .xlt qu'on ouvre, et donc que le .xls qu'il lance n'est enregistré nul part.

Quelqu'un pour m'aider s'il vous plaît ?
 

aurelien.francois

XLDnaute Nouveau
Re : Macro pour fermer le fichier, puis le réouvrir

Oui en fait j'ai trouvé où le fichier était enregistré : dans C:\
Ce qui veut dire qu'il me faut créer une macro qui fait que lorsque j'ouvre mon .xlt, cela ouvre le .xls dans le même dossier...
Existe-t-il une formule sous VBA ?
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour fermer le fichier, puis le réouvrir

Bonjour aurelien.francois,

euh.. une remarque : tu mets un "/" à la place d'un "\", ça pose peut-être problème
si c'est pas ça alors il faut faire comme tu avais prévu :

ActiveWorkbook.SaveAs (chemin & "\" & fichier)
ActiveWorkbook.Close False
Workbooks.Add Template:="C:\" & fichier
 

aurelien.francois

XLDnaute Nouveau
Re : Macro pour fermer le fichier, puis le réouvrir

Oui le sens du slash \ c'est moi qui l'ai modifié car ça ne marchait pas avec / (mais bon ça n'a rien changé)
La formule que tu me donnes c'est à mettre à la place de mon ancienne, ou alors en macro à l'ouverture du fichier ?
 

aurelien.francois

XLDnaute Nouveau
Re : Macro pour fermer le fichier, puis le réouvrir

J'ai utilisé le code suivant :

Code:
Private Sub cboui_Click()
Application.DisplayAlerts = False
chemin = ActiveWorkbook.Path
fichier = "Compte d'escale automatisé.xlt"
fichier1 = "Compte d'escale automatisé1.xls"
ActiveWorkbook.SaveAs (chemin & "\" & fichier1)
ActiveWorkbook.Close False
Workbooks.Add Template:=(chemin & "\" & fichier1)
Application.DisplayAlerts = True
Unload Me

End Sub
Le souci c'est qu'il le chemin (activeworkbook.path) comme étant C:\ donc il m'enregistre Compte d'escale automatisé1.xls et Compte d'escale automatisé.xlt dans C:\

Le problème me semblait simple mais finalement il est plutôt costaud !
 

Discussions similaires

Statistiques des forums

Discussions
312 558
Messages
2 089 595
Membres
104 219
dernier inscrit
agateponcet