Sauvegarder sous Excel

bonjour

la macro suivante (situee dans un module), sauvegarde un onglet sous un nouveau classeur au format PDF.

je voudrais savoir comment changer afin qu'il sauvegarde sous excel et non sous PDF?

ci-joint le fichier.

merci d'avance!!

Sub Bevel1_Click()

Dim FileExtStr As String

Dim FileFormatNum As Long

Dim Sourcewb As Workbook

Dim destwb As Workbook

Dim TempFilePath As String

Dim TempFileName As String

Dim OutApp As Object

Dim OutMail As Object

Dim S As Shape

Dim sNomFic As String, sRep As String, WshShell As Object

With Application

.ScreenUpdating = False

.EnableEvents = False

End With

' Crיer une instance Windows Script pour retrouver le chemin du bureau

Set WshShell = CreateObject("WScript.Shell")

sRep = WshShell.SpecialFolders("Desktop")

Set WshShell = Nothing

' Dיfinit le nom du fichier א enregistrer

sNomFic = Sheets("sheet1").Range("A1").Value & ".xls"

' Enregistrer la feuille en PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

End Sub

Bonjour,

remplacer:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

par:

ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=sRep & "\" & sNomFic, FileFormat:=51, CreateBackup:=False
ActiveWorkbook.Close

xlOpenXMLWorkbook = 51 (.xlsx)

xlOpenXMLWorkbookMacroEnabled = 52 ( .xlsm)

ça marche mais quand je veux ouvrir le nouveau classeur qui a été sauvegardé, j'un ce message:

the file you are trying to open in in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?

J'ai mis l'extension "xls":

sNomFic = Sheets("sheet1").Range("A1").Value & ".xls"

le fichier s'ouvre mais je voudrais éviter d'avoir à chaque fois ce message...

De plus comment faire pour que le module avec les macros qui y sont soit également dans le nouveau fichier créé ?

il faut remplacer 51 par 56

ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=sRep & "\" & sNomFic, FileFormat:=56, CreateBackup:=False
ActiveWorkbook.Close

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)

merci beaucoup!!!

encore une chose: comment faire pour que toutes les macros soient également dans le fichier créé?

Car dans le fichier qui est sauvegardé sous un autre nom, les macros du module ont disparu

Car dans le fichier qui est sauvegardé sous un autre nom, les macros du module ont disparu

c'est normal puisque le nouveau fichier a été créer à partir de la copie d'une seule Feuil.

ou sont vos macro ? "Module, Module de class, Feuil, ThisWorkbook, UserForm ?"

Peut-être qu'il serait plus facile d'enregistrer le fichier sous l'autre nom et d'enlever des données ou feuille ou autre...

mes macros se trouvent dans la feuille elle-même, dans "ThisWorkbook" et dans le module.

Est-il possible de sauvegarder tout le classeur (étant donné qu'il n'y a qu'une feuille ce n'est pas grave) afin que toutes les macros soient opérationnelles dans le nouveau classeur?

oui,

est ce que le fichier original doit-il être ré-ouvert après l'enregistrement sous l'autre nom ?

oui.

apres l'enregistrement sous l'autre nom, le fichier original reste ouvert.

Bonjour,

wk1 = ThisWorkbook.FullName
ActiveWorkbook.SaveAs Filename:=sRep & "\" & sNomFic, FileFormat:=56, CreateBackup:=False
Workbooks.Open Filename:=wk1

mille merci !!!!! )))

Rechercher des sujets similaires à "sauvegarder"