Guardar libro excel con nombre y fecha

Quisiera crear una macro para guardar el archivo excel como un libro nuevo y que lo guarde con el valor de una celda que sería E3 de la hoja Entradores (por si hace falta ya que la macro se ejecutaría desde esta hoja) y además la fecha del día.

Para que el archivo quede original siempre y guardar el que sea con los datos que estén cargados ese día. Por ejemplo "Pedidos Madrid 10-5-21".

He de decir que el libro tiene varias hojas por que necesitaría que se guardara el libro entero con todos los datos. Lo he intentado pero no supe como hacerlo.

Sub guardar()
'
' guardar Macro
'
Dim Ruta As String
Dim Filename As String
Dim Fecha As Date
Fecha = Format(Date, "dd - mm - yyyy")
Ruta = "C:\Users\kike\Desktop\PEDIDOS\COPIAS\ "
Filename = Range("E3").Value
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=Ruta & Filename & Fecha & ".xls", FileFormat:=xlNormal
'
End Sub

1 Respuesta

Respuesta
2

Prueba lo siguiente:

Sub guardar()
  Dim ruta As String, arch As String
  '
  ruta = "C:\Users\kike\Desktop\PEDIDOS\COPIAS\"
  ruta = "c:\trabajo\"
  arch = Sheets("Entradores").Range("E3").Value & " " & Format(Date, "dd-mm-yyyy")
  Sheets.Copy
  ActiveWorkbook.SaveAs ruta & arch & ".xls", FileFormat:=xlNormal
  ActiveWorkbook.Close
End Sub

Hola Dante he probado lo que me dices y me da error en la misma línea que me lo daba a mi y es en esta:

ActiveWorkbook.SaveAs ruta & arch & ".xls", FileFormat:=xlNormal

Me abre un nuevo libro como Libro1 pero no lo llega a guardar ya que de esa linea no pasa. Espero que me puedas ayudar.

Un saludo

Eso es porque no existe la carpeta

Olvidé borrar esta línea: c:\trabajo

Sub guardar()
  Dim ruta As String, arch As String
  '
  ruta = "C:\Users\kike\Desktop\PEDIDOS\COPIAS\"
  arch = Sheets("Entradores").Range("E3").Value & " " & Format(Date, "dd-mm-yyyy")
  Sheets.Copy
  ActiveWorkbook.SaveAs ruta & arch & ".xls", FileFormat:=xlNormal
  ActiveWorkbook.Close
End Sub

Prueba nuevamente. Verifica que exista la carpeta 

"C:\Users\kike\Desktop\PEDIDOS\COPIAS\"

Si no existe la carpeta, entonces puedes guardar el archivo en la misma carpeta donde tienes el archivo con la macro, para esto prueba esta macro:

Sub guardar()
  Dim ruta As String, arch As String
  '
  ruta = ThisWorkbook.Path & "\"
  arch = Sheets("Entradores").Range("E3").Value & " " & Format(Date, "dd-mm-yyyy")
  Sheets.Copy
  ActiveWorkbook.SaveAs ruta & arch & ".xls", FileFormat:=xlNormal
  ActiveWorkbook.Close
End Sub

¡Gracias! Muchas gracias funciona correctamente. Ahora lo que me dice que hay fórmulas que pueden no ser compatibles con excel anterior 2007, ¿hay manera de que lo guarde sin preguntar nada?

Un saludo y muchas gracias de nuevo

Después de esta línea:

Dim ruta As String, arch As String

Agrega esta línea:

Application.DisplayAlerts = False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas