Macro guardar hoja excel

Ayer hice una pregunta a cerca de como hacer una macro para guardar una hoja en la que estoy con cuadro de dialogo y de un rango de celdas determinado. Luismondelo me respondió satisfactoriamente. Pero quiero modificar y que me la guarde directamente con el nombre de una celda.

Este es el código que luismondelo me facilitó:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a3:k62").Copy
workbooks(otro).activate
Sheets(1).select
Range("a1").select
activesheet.paste
Application.Dialogs(xlDialogSaveAs).Show
End Sub

Me gustaría saber donde incluir la ruta y quitar el cuadro de dialogo.

1 respuesta

Respuesta
1

Te sigo respondiendo:

En este ejemplo nos imaginamos que que en la celda A1 de la hoja activa tenemos anotado el nombre que queremos dar el futuro archivo junto con su path completo, como este ejemplo:

(Esto estaría escrito literalmente en la celda A1)

C:\mis documentos\archivos\archivo.xlsx

La macro quedaría así:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
nombre=range("a1").value
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a3:k62").Copy
workbooks(otro).activate
Sheets(1).select
Range("a1").select
activesheet.paste
activeworkbook.saveas nombre
activeworkbook.close false
msgbox "Se ha grabado el siguiente archivo:" & chr(13) & nombre
End Sub

recuerda finalizar la consulta

Amigo Luismondelo creo que no me expliqué bien.

Te explico:

En la celda D:11 tengo el nombre con el que quiero guardar la hoja, y la ruta donde quiero que me la guarde es en D:\Mis documentos\PADRE\MIS TRABAJOS\PRESUPUESTOS\factura mano de obra, pero la ruta no quiero que este en una celda sino incluida en el código.

Gracias por soportar a tanto novato.

Ok, entonces esta es la macro:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
nombre=range("d11").value
ruta = "D:\Mis documentos\PADRE\MIS TRABAJOS\PRESUPUESTOS\factura mano de obra\"
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a3:k62").Copy
workbooks(otro).activate
Sheets(1).select
Range("a1").select
activesheet.paste
activeworkbook.saveas ruta & nombre
activeworkbook.close false
msgbox "Se ha grabado el siguiente archivo:" & chr(13) & nombre
End Sub

recuerda finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas