Enregistrer une copie sous format xls

Bonjour,

je reviens une fois de élus vers les lumières de ce magnifique forum à la recherche de solution à mon problème.

J'ai un fichier xlsm pour gérer plusieurs taches, à partir de ce fichier je voudrais enregistrer une copie au format xls qui ne contient aucune macro( cette copie sera envoyée vers des support où excel ne prend pas en charge les macros, type ipad) ceci tout en gardant le fichier source ouvert. j'ai utiliser ThisWorkbook.SaveAs mais ça ne marche pas car même si une copie est enregistrée, à son ouverture un message s'affiche: "le format du fichier que vous tenez d'ouvrir est différent de celui spécifié par l’extension du fichier. Assurez vous que le fichier n'est pas endommagé et qu'il provient de source fiable avant de l'ouvrir. Souhaitez vous l'ouvrir maintenant?" et quant je valide pour l'ouverture toutes les macros sont présentes ce qui est normale car la source est en xlsm.

Donc ma question c'est comment enregistrer une copie du fichier en supprimant toutes les macros de telle manière à avoir un fichier xls?

merci d'avance

ci joint un fichier test

32source.xlsm (18.29 Ko)

Bonjour,

dans ce cas autant "duppliquer tous les onglets dans un nouveau fichier qui lui pourra être enregistre au format xls compatible

pour tous puisqu'il n'y a plus besoin des macros.

Sub Macro1()
'
Dim chemin As String
chemin = ThisWorkbook.Path
Sheets.Select
Sheets.Copy

    ChDir chemin

        ActiveWorkbook.SaveAs Filename:=chemin & "\Sourcesansmacro.xls" _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

    ActiveWorkbook.Close
End Sub

Re

Merci d'abord du temps que vous avez consacré à ma demande

La solution que vous m'avez proposé ne répond pas vraiment à mon problème car j'ai trop simplifier mon fichier exemple; au fait c'est un fichier contenant plusieurs feuilles avec des tableaux, des graphs, des noms de champs... la majorité des ces feuilles sera masquer par .Visible = xlSheetVeryHidden , Puis le fichier serait protégé pour ne laisser que quelques une avec des validations de données et des graphs.

Avec votre proposition le code bloque sur: Sheets.Copy

j’espère que la solution existe

Re,

Essaies en utlisant l'enregistreur de macro et enregistre manuellement " Enregistrer sous " en indiquant le format compatible excel

"Classeur Excel 97 - 2003 (*xls)

Tu devrais ensuite trouver la bonne formulation de ta ligne :

[u]ActiveWorkbook.SaveCopyAs chemin & Fichier

[/u]

je pense qu'il manque le format d'enrgistement même si tu indiques xls à la fin.

suivant tes conseils avec l'enregistreur de macros:

le format est FileFormat= xlOpenXMLWorkbook

mais cela ne marche qu'avec: ActiveWorkbook.SaveAs et pas avec ActiveWorkbook.SaveCopyAs

En effet il semble qu'on ne peut directement enregistrer une copy en changeant le format.

( car pour excel ce ne serait plus une copie exacte.)

Donc ne reste plus que la commande SaveAs ( le problème c'est que la copie va devenir le fichier actif.)

il faut donc penser à la fin de la macro à relancer une commande d'ouverture du fichier original (xlsm)

avant d'ajouter la commande de fermeture de la copie (xls).

Rechercher des sujets similaires à "enregistrer copie format xls"