I have a worksheet with VBA code (on Excel, right-click on the sheet name and View code) that I would like to copy on the same workbook.
When using workbook.copy_worksheet() , the VBA code contained in the worksheet is lost. 
I've had a look at the worksheet.vba_code property but it seems to only contain some sheets properties, not the VBA code.
I think the problem will be that worksheets themselves do not contain any VBA code. This is stored as a blob in the XLSX package and may well contain hard-coded references to particular worksheets. Unfortunately the VBA blobs are not covered by the OOXML specification so there is no way to know. You might be okay if you copy the vba_code property manually but there is no guarantee and it's just as likely that Excel will complain about the file.
How to keep VBA code when copying worksheet with openpyxl?