Enregistrer en .xlsm avec macro

Bonjour,

Je viens de réaliser qu'il ne me reste plus qu'une chose à faire pr finir mon projet, c'est de copier une feuille qui est dans un classeur en .xlsm vers un nouveau classeur en .xlsm

Le seul problème est que j'arrive à faire ma copie en créant mon nouveau classeur mais il se crée en .xlsx et non en .xlsm pour conserver les macros.

Je vous donne ma macro entière plus bas et si vs avez des idées je suis preneur.

La partie ou j'ai le soucis est la partie en rouge.

Merci d'avance à tous pr votre aide.

Sub EnvoiMail10()

Dim ret As Integer

ret = MsgBox("Voulez-vous valider?", vbYesNo, "Demande de confirmation")

If ret = vbYes Then

End If

If ret = vbNo Then

Exit Sub

End If

Dim OutApp As Object

Dim OutMail As Object

Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

strbody = "<font size=""3"" face=""Calibri"">" & _

"Bonjour,<br><br>" & _

"Nouvelle demande de purge et conditionnement de circuit." & _

"<br><br>Cliquez sur ce lien pour ouvrir le fichier concerné : " & _

"<A HREF=""fichier" & _

""">ici</A>" & _

"<br><br>Cordialement," & _

"<br><br>L'Équipe ML Labo</font>"

On Error Resume Next

With OutMail

.To = "email"

.CC = ""

.BCC = ""

.Subject = "Demande de purge et conditionnement de circuit"

.HTMLBody = strbody

.Send

End With

On Error GoTo 0

Set OutMail = Nothing

Set OutApp = Nothing

Dim chemin As String

Nom = [K2]

Sheets("FTE").Copy

chemin = "C:\Users\Desktop\ML labo - EX\FTE\"

ActiveWorkbook.SaveAs Filename:=chemin & "FTE n°" & Nom

Dim sh As Worksheet

For Each sh In Worksheets

sh.EnableAutoFilter = True

sh.EnableOutlining = True

sh.Protect Contents:=True, Password:="3110", UserInterfaceOnly:=True

Next

Dim NewM As Object, NewCode As String

With ThisWorkbook.VBProject.VBComponents("Module11").CodeModule

NewCode = .Lines(1, .CountOfLines)

End With

Set NewM = ActiveWorkbook.VBProject.VBComponents.Add(1)

With ActiveWorkbook.VBProject.VBComponents(NewM.Name).CodeModule

.DeleteLines 1, .CountOfLines

.AddFromString NewCode

End With

End Sub

Bonjour,

Sheets("maFeuille").Copy
ActiveWorkbook.SaveAs "C:\Users\xxxx\Documents\EssaieExcel\Test.xlsm", FileFormat:=52  'adapter chemin et nom
ActiveWorkbook.Close 'ferme le nouveau fichier et retour au fichier original

pour info:

51 = xlOpenXMLWorkbook (without macro's in 2007-2016, xlsx)

52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2016, xlsm)

50 = xlExcel12 (Excel Binary Workbook in 2007-2016 with or without macro's, xlsb)

56 = xlExcel8 (97-2003 format in Excel 2007-2016, xls)

nickel ça fonctionne, merci encore de ton aide.

en fait au final j'ai juste rajouté le fileformat:=52 comme suis (si ca peut aider):

Dim chemin As String

Nom = [K2]

Sheets("FTE").Copy

chemin = "C:\Users\f18170\Desktop\ML labo - EX\FTE\"

ActiveWorkbook.SaveAs Filename:=chemin & "FTE n°" & Nom, FileFormat:=52

Merci encore

Rechercher des sujets similaires à "enregistrer xlsm macro"