Peter doit régulièrement copier une feuille de calcul principale sur une copie d’un nouveau classeur. Il peut le faire très bien avec VBA. Cependant, la feuille de calcul qu’il copie a du code associé, et le code est également copié.

Peter ne veut pas du code dans la copie, mais il veut le laisser dans l’original. Il se demande s’il existe un moyen, dans sa macro, de supprimer le code de la feuille de calcul dans la feuille de calcul qui vient d’être copiée.

La façon dont vous procédez dépend de la façon dont vous voulez que le classeur fini (celui sur lequel vous copiez) ressemble. Le classeur terminé contiendra-t-il principalement des macros, des macros, ou non? Si la réponse est non, elle ne contiendra aucune macros, vous pouvez facilement accomplir la tâche en enregistrant le nouveau classeur au format XLSX. De cette façon, Excel se charge de se débarrasser de toutes les macros pour vous. Vous pouvez le faire en incluant une ligne dans votre code similaire à ce qui suit lorsque vous enregistrez votre classeur:

ActiveWorkbook.SaveAs FileName:="MyExcelFile.xlsx", _   FileFormat:=xlOpenXMLWorkbook

Si, toutefois, vous souhaitez uniquement vous débarrasser du code de la feuille de calcul mais enregistrer le nouveau classeur avec tout autre code de macro intact, vous devrez adopter une approche différente. Dans ce cas, vous pouvez inclure la ligne suivante dans votre macro:

ActiveWorkbook.VBProject.VBComponents("Sheet1")

Cela suppose que le nouveau classeur est le classeur actif et que la feuille de calcul dont vous souhaitez supprimer le code est nommée Sheet1. Vous pouvez également utiliser ces lignes pour accomplir la même tâche:

wsName = ActiveSheet.CodeName With ThisWorkbook.VBProject.VBComponents(wsName).CodeModule     .DeleteLines 1, .CountOfLines End With

Notez que wsName doit être déclaré en tant que variable de chaîne.

Pour une multitude d’autres façons dont vous pouvez affecter différents modules de code par programme, vous ne pouvez pas vous tromper en vous référant aux excellentes informations de Chip Pearson ici:

http://cpearson.com/excel/vbe.aspx

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7612) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.