Concatenar nombre del libro esta en celda b5 de la hoja 2

Al ejecutar una macro me crea una hoja, en ella me copia la información que se requiere, pero me guarda con un nombre fijo la quiero concatenarlo con el nombre de la empresa.

ActiveWorkbook.SaveAs Filename:="C:\A\REGISTRO COMPRAS PARA CONCAR.xlsx", CreateBackup:=False

Cual seria el cambio a realizar.

Respuesta
1

Intenta así:

Dim a As String
ruta = "C:\A\REGISTRO COMPRAS PARA CONCAR "
a = Sheets("Hoja2").Range("B5").Value
ActiveWorkbook.SaveAs Filename:= ruta & a & ".xlsx"
CreateBackup:=False

Hola Daniel:

Esta es la macro original:

Sub NUEVOARCHIVOC()

Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
ActiveSheet.DisplayPageBreaks = False
Sheets("concar").Select
Sheets("concar").Copy
ActiveWorkbook.SaveAs Filename:="C:\A\REGISTRO COMPRAS PARA CONCAR.xlsx", CreateBackup:=False
ActiveWindow.Close
Sheets("DATOS").Select
Range("H5").Select
End Sub

E tratado de modificar con los parámetros que me has indicado pero no se puede ejecutar, a la vez quisiera que se cambia a GUARDAR COMO para seleccionar la ruta donde se guardará el archivo.

Saludos.

Si muestras la ventana para guardar el concatenado no servirá de nada solo necesitas agregar la línea:

Application. GetSaveAsFilename

En vez de la línea que usas para guardar

Hola Daniel:

Disculpa que hasta el momento no se logra lo que busco, lo que deseo es que me guarde en la dirección donde se ejecuta la macro, y que me coloque los nombre de acuerdo a las celdas indicadas, cabe indicar que estas celda no se encuentran en la misma hoja, y con la extensión xlsm.

Encontré una macro como esta pero me guarda en mis documentos.

Dim Ruta As String
Dim nombre As String ' variable para el nombre
'ingreso el nombre sin extensión
nombre = "REGISTRO COMPRAS CONCAR_"& Range("EMPRESA").Value  & "0" & Range("MES").Value & Range("AÑO").Value
'lo guardo con el nombre especicado y pongo la extención
ActiveWorkbook.SaveAs FileName:=Ruta & Trim(nombre) & ".xls"

Espero con esto se de solucion a lo que deseo.

Saludos.

Inténtalo así:

Sub NUEVOARCHIVOC()
Dim a As String
ruta = "C:\A\REGISTRO COMPRAS PARA CONCAR "
a = Sheets("Hoja2").Range("B5").Value
Sheets("concar").Select
Sheets("concar").Copy
ActiveWorkbook.SaveAs Filename:= ruta & a & ".xlsx"
Sheets("DATOS").Select
Range("H5").Select
End Sub

Yo ya lo probé y si funciona, si no te funciona o esa ruta no existe, o esas hojas no existen.
Si le quieres cambiar la ruta constantemente puedes guardarlo en una celda y llamarla igual que con la variable "a".

Hola Daniel:

Que la ruta sea donde se encuentra mi hoja de trabajo, no es fija.

Saludos.

Sub NUEVOARCHIVOC()
Dim a As String
ruta = ActiveWorkbook.Path
a = Sheets("Hoja2").Range("B5").Value
Sheets("concar").Select
Sheets("concar").Copy
ActiveWorkbook.SaveAs Filename:=ruta & a & ".xlsx"
Sheets("DATOS").Select
Range("H5").Select
End Sub

Hola Daniel:

Me sale un error la hoja que selecciono para el nombre.

a = Sheets("INICIO").Range("E8").Value

Este es el error.

Saludos.

Hola Daniel:

La ruta que tengo donde ejecuto mi libro es esta:

\\Rocio-pc\d\informacion de la d central\d\Victor\d\CLIENTES ESTUDIO VES\CLIENTES\CAMPANA FUENTES EILEN\DDJJ MENSUALES\AÑO 2019\PRUEBA

Al ejecutar la macro me guarda aqui:

\\Rocio-pc\d\informacion de la d central\d\Victor\d\CLIENTES ESTUDIO VES\CLIENTES\CAMPANA FUENTES EILEN\DDJJ MENSUALES\AÑO 2019

Una carpeta antes, no se cual es el error que estoy cometiendo.

Saludos.

Hola Daniel:

A la vez me guarda con el nombre de la carpeta donde debió guardarse.

En este caso es PRUEBANOMBRE(Nombre es el nombre que se le dio)

Saludos.

Te adjunto macro completa:

Sub NUEVOARCHIVOC()
'
' NUEVO Macro

Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
ActiveSheet.DisplayPageBreaks = False
Dim a As String
Ruta = ActiveWorkbook.Path
a = "REGISTRO COMPRAS CONCAR_" & Range("EMPRESA").Value & "_" & "0" & Range("MES").Value & Range("AÑO").Value
Sheets("concar").Select
Sheets("concar").Copy
ActiveWorkbook.SaveAs FileName:=Ruta & a & ".xlsx"
ActiveWindow.Close
Sheets("COMPRAS").Select
Range("H5").Select
End Sub

Haber si encuentras el error.

Saludos.

Que hay dentro de Range("EMPRESA"). Value, Range("MES"). Value, Range("AÑO").Value?
¿Son matrices o un valor único?

Hola Daniel:

Son celdas nombradas:

Pertenece a la Hoja19(INICIO), E5(EMPRESA), E8(MES), E10(AÑO)

El problema no tengo con el nombre de la hoja es donde se guarda.

Lo realiza en una carpeta antes de la ruta que te indique líneas arriba.

Saludos.

Me indicas que el Ruta = ActiveWorkbook.Path guarda mi libro en donde ejecuto mi macro, pero no lo guarda aquí sino en una carpeta antes.

Saludos.

Intenta cambiar la línea de guardado a:

ActiveWorkbook.SaveAs FileName:=Ruta & "\" & a & ".xlsx"

Agradezco tu tiempo, en la solución del caso.

Seria posible que me ayudaras con una pregunta que hasta la fecha no tiene respuesta.

Ocultar datos dependiendo del mes seleccionado

Gracias

¿Qué no ya te había ayudado con esa?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas