Problemas con macro

Hola buenas tardes:
Me estoy iniciando en el mundo de las macros y me he encontrado con un problema en el cual estoy atascado. ¿Me podrías ayudar?
Tengo una plantilla sobre la que trabaja el usuario (libro excel con varias hojas), en la última hoja quiero crear un botón mediante el cual me cree un archivo excel en una ruta determinada. En C:, por ejemplo. Además, me gustaría que el nombre del archivo que se guardsa fuese en función del valor de una celda. Cuando pulse el botón se creará el archivo en esa ruta, pero no estará abierto, la plantilla seguiría abierta. OTROde los problemas que encuentro es que en la plantilla tengo varias macros asociadas a botones y en el archivo generado me gustaría que no apareciesen.
He estado tocando un poco y he llegado hasta aquí
Private Sub CommandButton3_Click()
    Application.ScreenUpdating = False
    Dim ruta As String
    Dim Nombre As String
    Dim wb As Workbook
    Nombre = "Emisiones_"  & Sheets("Inicio").Cells(4, 13)
    ruta = ThisWorkbook.Path
    Set wb = ActiveWorkbook
        Sheets("vehiculos").Shapes("CommandButton2").Select
        Selection.Delete
        Sheets("TOTAL").Shapes("CommandButton3").Select
        Selection.Delete
        Sheets("TOTAL").Shapes("CommandButton2").Select
        Selection.Delete
With wb
    .SaveAs ruta & Nombre & ".xls"
    .Close
End With
ActiveWorkbook.Open
Set wb = Nothing
    Application.ScreenUpdating = True
End Sub
Pero tengo problemillas.
1º me cierra el archivo de origen, y yo quiero que se mantenga abierto. Sólo quiero que se mantenga cerrado el creado
2º no me graba el archivo en la misma ruta, sino un nivel detrás del excel que estoy ejecutando.
3º no me lo graba con el nombre que quiero. Me añade al principio del nombre, el nombre de la carpeta donde tengo el archivo original.
4º me sigue apareciendo una de las macros en el archivo final. Es un botón que abre un formulario... No se si tendrá que ver algo.
Muchas gracias

1 respuesta

Respuesta
1
Claro que si, nada más dame chance que llegue el fin de semana pues tengo bastante trabajo.
Muchas gracias he encontrado la solución al final.Al final hice esto, si alguien tiene otra opción la aceptaré encantado
Dim Hoja as WorkSheet
For Each Hoja In WorkSheets
Hoja.DrawingObjects.Delete
Next Hoja

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas