Pues funciona perfectamente.
La otra opción era conservar la tabla y borrar su contenido cada vez, pero tenía que escribir mucho código para dejarla como recien creada, además era propenso a errores si se modificaban ciertas partes como los botones de la hoja o los anchos de las columnas.
De la forma que me comentas, oculto la hoja que luego copio y así nadie tiene la opción de modificarla accidentalmente. Además se copia el código vba a la nueva hoja, que es lo que quería.
Muchas gracias por tu ayuda