XL 2010 Créer une macro permettant d'enregistrer un fichier avec prise en charge des macros

allarmen

XLDnaute Nouveau
Bonjour,

J'ai recherché partout sur le Net sans trouver la réponse à ce problème pourtant en apparence simple.

Comment peut on faire pour créer une macro qui permet d'ouvrir la boite de dialogue enregistrer-sous avec par défaut type : classeur Excel prenant en charge les macros

upload_2017-10-20_13-24-47.png


Ou si ceci n'est pas possible comment enregistrer directement un fichier avec ce format sans passer par la boite de dialogue (et sans message d'avertissement).

Merci d'avance au Génie qui pourrait trouver la solution.


Bonne journée
 

youky(BJ)

XLDnaute Barbatruc
Bonjour allarmen,
Voici un exemple pompé sur un de mes fichier.
Bruno
VB:
nom = "nomdufichier" ' à modifier
'ici enregistre dans même dossier
chemfich = ThisWorkbook.Path & "\" & nom & ".xlsm"
fich = Dir(chemfich)
If fich <> "" Then
MsgBox "Le fichier " & fich & " Existe déjà" & vbCr & "Abandon de la procédure"
Exit Sub
End If
ActiveWorkbook.SaveCopyAs Filename:=chemfich
 

allarmen

XLDnaute Nouveau
Fantastique !
Parfait le code est bien plus simple que ce que j'imaginais.

Merci mille fois Bruno !
Bon week-end :)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Adapté de l'enregisteur de macros
VB:
Sub Macro1()
Dim strPath$, Fichier$
strPath = "C:\TEMP\": Fichier = "nomfichier.xlsm"
ActiveWorkbook.SaveAs _
        Filename:=strPath & Fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Jean Marie,
Pour le cas d'Allarmen j'utilise SaveCopyAs au lieu de SaveAs.
La raison est simple (mes explications ne sont pas pour JM qui en connait plus que moi)
SaveCopyAs >>>>va simplement faire une copie du fichier à l'emplacement demandé
Nous restons donc sur le fichier original et pouvons continuer à bosser tranquilos.
SaveAs >>>va faire EnregistrerSous et on se retrouve direct avec ce nouveau fichier à l'écran.
Il deviens donc plus difficile de gérer la suite des événements.
Bruno
 

Staple1600

XLDnaute Barbatruc
Bonjour youky(Bj)

Mon précédent message était une tentative pour inciter le demandeur à utiliser l'enregistreur de macros.
Mais comme il a trouvé chaussure à son pied, pas sûr qu'il reviendra lire la suite de son post ;)

PS: j'en sais ni plus ni moins que toi.
Mais tout comme toi, je sais lire et je suis curieux.
Cela suffit pour apprendre à utiliser et progresser dans Excel
(et depuis l’événement d'internet, c'est encore plus facile.
Et bonus en prime ça allège considérablement les étagères de ma bibliothèque ;))
 

allarmen

XLDnaute Nouveau
Bonsoir,

Et encore un grand merci à tous les deux. J'ai bien trouvé un code qui me correspond.
Je me rends compte par contre qu'il ne fonctionne plus chez moi.

En fait la fonction Path n'arrive pas à retrouver le bon lecteur de disque du chemin d'accès au fichier.
Il considère par défaut que mon fichier se trouve sur le lecteur C.
Il enregistre une copie sur le lecteur C
Mais c'est étonnant puisque le fichier original, je l'ai mis sur un autre lecteur (F pour moi).

Je ne sais pas si je suis clair :)

Le but est de pouvoir transporter ce programme sur n'importe quelle machine et qu'il enregistre automatiquement une copie du fichier justement à l'endroit ou se trouve l'original.

Alors si vous retomber sur mon post...


Dans tous les cas j'aurais appris pas mal de choses intéressantes depuis vos réponses.



Bonne semaine vous
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Le but est de pouvoir transporter ce programme sur n'importe quelle machine et qu'il enregistre automatiquement une copie du fichier justement à l'endroit ou se trouve l'original.
Est-ce quepar hasard, le fichier original ne serait pas sur une clé USB?
Et selon le PC, sur laquelle la clé est branchée, parfois le lecteur est E ou F ou G?
 

allarmen

XLDnaute Nouveau
Bonsoir,
Si j'utilise la fonction curdir il indique bien en variable c:user\mesdocuments...
C'est étrange alors que le fichier est dans mon lecteur F:
 

allarmen

XLDnaute Nouveau
Et c'est embêtant parce dans mon travail on ne peut pas enregistrer sur le C mais uniquement sur des lecteur réseaux.
 

Staple1600

XLDnaute Barbatruc
Re,

Et cette macro donne quoi ?
VB:
Sub BackUp()
Dim X$, Fichier$
X = ActiveWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "Copie_" & X,  xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close True
End Sub
 

allarmen

XLDnaute Nouveau
C'est bien ce que je me disais, ce problème d'apparence simple s'avère beaucoup plus compliqué à résoudre.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas