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