¿Como hacer que excel guarde con un titulo de una celda?

Hola a todos, necesito saber cómo hacer que excel me guarde el documento con el nombre que le haya puesto en una celda, ya sea texto o una fecha.

Gracias.

1 Respuesta

Respuesta
1

Las instrucciones son las siguientes.

No indicas cuándo lo harás, si con un botón especial, o directamente al presionar el botón de guardado. Tampoco indicas tu versión Excel por lo que puede cambiar la extensión... lee los comentarios en la rutina y ajusta todas las variables.

Sub guardaPersonal()
'x Elsamatilde
'Variables para ajustar
'la carpeta donde se guardará el libro
ruta = "C:\Users\fernando\Desktop\Ordenes de Trabajo\"
 'si se trata de la misma carpeta que el libro activo utilizar ésta:
 'ruta = ThisWorkbook.Path & "\"
'dónde se encuentra el nombre para el libro
nombreLibro = Sheets("Datos").Range("B1")
'extensión según versión
extension = ".xlsm"
'se guarda y SE QUEDA COMO LIBRO ACTIVO
ActiveWorkbook.SaveAs ruta & nombreLibro & extension
'o se guarda como COPIA quedando activo el libro original
'ActiveWorkbook.SaveCopyAs ruta & nombreLibro & extension
End Sub

Cabe destacar que cuando menciono 'o.....' significa que solo irá 1 de las 2 instrucciones.

Nota: si la celda tiene formato fecha con barras, hay que asignarle otro formato apto para nombres de libros. Lo mismo si el contenido de la celda tiene texto con caracteres no aptos para nombres de libros.

Por ej, si fuese fecha:

nombreLibro = Format(Sheets("Datos").Range("B1"), "ddmmyyyy")

Sdos y no olvides finalizar la consulta si todo quedó comprendido y resuelto.

Gracias por la respuesta y perdón por los pocos detalles que dí, pero casi no tengo conocimientos de excel.

Lo que trato de hacer es que abro una hoja que tengo creada para hacer partes de horas de trabajo en la cual hay una celda de fecha con el formato: 15 de mayo de 2014 y quisiera que el documento cuando le de al botón de guardar o pulse Ctrl+G se guarde en una carpeta creada para ese mes, pero sin modificar el archivo original para no tener que borra los datos cada día.

Mi office es 2007.

Bien, en ese caso hay que convertir la fecha en un formato apto para nombres de libro.

Además, si no querés que se guarden los cambios en el libro original, luego de guardar la copia se lo cierra con esa condición (sin guardar cambios).

Para el nombre de la subcarpeta, asumo que será como la del mes de la celda, en mi ejemplo es B2 de la hoja Datos... eso lo podes ajustar a tu modelo.

Entonces, entrá al Editor de macros e insertá un módulo y allí escribí esto:

Sub guardaPersonal()
'x Elsamatilde
'Variables para ajustar
'la carpeta y subcarpeta donde se guardará el libro
nbremes = Format(Sheets("Datos").Range("B2"), "mmmm")
ruta = ThisWorkbook.Path & "\" & nbremes & "\"
'nombre para el libro
nombreLibro = Format(Sheets("Datos").Range("B2"), "ddmmmmyyyy") & "-" & ActiveWorkbook.Name
'se guarda y SE QUEDA COMO LIBRO ACTIVO
ActiveWorkbook.SaveCopyAs ruta & nombreLibro
End Sub

y ahora, en el mismo Editor, en el panel a tu izquierda, seleccioná con doble clic el objeto ThisWorkbook (o Este Libro) y allí copiá esto:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call guardaPersonal
ActiveWorkbook.Close False
End Sub

Para poder guardar tu libro con estas macros, debes abrirlo SIN HABILITAR LAS MACROS para que puedas guardar estos cambios obviamente ;)

Hola de nuevo, gracias por la ayuda.

He hecho lo que me pones arriba y me da un error:

Se ha producido el error '9' en tiempo de ejecución:

Subíndice fuera del intervalo

Al clicar en "depurar" me da:

Sub guardado()
'x Elsamatilde
'Variables para ajustar
'D:\Documents and Settings\Usuario\Escritorio\RUBEN\PARTES DE HORAS\MAYO
nbremes = Format(Sheets("Datos").Range("G3"), "mmmm")
ruta = ThisWorkbook.Path & "\" & nbremes & "\"
'nombre para el libro
nombreLibro = Format(Sheets("Datos").Range("B2"), "ddmmmmyyyy") & "-" & ActiveWorkbook.Name
'se guarda y SE QUEDA COMO LIBRO ACTIVO
ActiveWorkbook.SaveCopyAs ruta & nombreLibro
End Sub

Lo que está en negrita sale con fondo amarillo.

O la hoja no se llama 'Datos' o la celda G3 no tiene una fecha ... quizás hayas escrito la fecha como un texto.

Revisa esos detalles xq la instrucción es correcta.

Sdos

Elsa

Hola de nuevo, ahora me sale:

file:///D:/Documents%20and%20Settings/Usuario/Escritorio/1.bmpSe ha producido un error '1004' en tiempo de ejecución:

No se puede tener acceso al archivo (sale la ruta del archivo nuevo) Puede haber varios motivos:

*el nombre del archivo o la ruta no existen

*otro programa está usando el archivo

*el libro que está intentando guardar tiene el mismo nombre que otro

A darle a depurar ahora sale:

Sub guardado()
'x Elsamatilde
'Variables para ajustar
'D:\Documents and Settings\Usuario\Escritorio\RUBEN\PARTES DE HORAS\MAYO
nbremes = Format(Sheets("Hoja1").Range("G3"), "mmmm")
ruta = ThisWorkbook.Path & "\" & nbremes & "\"
'nombre para el libro
nombreLibro = Format(Sheets("Hoja1").Range("G3"), "ddmmmmyyyy") & "-" & ActiveWorkbook.Name
'se guarda y SE QUEDA COMO LIBRO ACTIVO
ActiveWorkbook.SaveCopyAs ruta & nombreLibro
End Sub

Lo que está en negrita sale en amarillo

Gracias otra vez.

Bien, ejecuta nuevamente y cuando salte el depurador y te muestre la línea en amarillo, pasa el cursor sobre la palabra 'ruta' y toma nota de su contenido.

Luego pasa el cursor sobre la palabra 'nombrelibro' y lo mismo.

Otro modo: coloca estas instrucciones justo por encima de esa línea en negrita:

MsgBox ruta

MsgBox nombreLibro

ActiveWork... aquí sigue tu macro

De este modo verás con certeza qué nombre estás asignando a tu libro.

Porque según veo, las instrucciones toman el contenido de una celda con fecha . pero en el mensaje que me envías queda como nombre 1.bmp ... ¿y eso?


Hacé estas pruebas y comentame ... si te parece podes enviarme tu libro para que yo pueda observar el contenido de la celda. (Copiá el correo que aparece en mi sitio que dejo al pie o dejame un correo tuyo)

perdón, lo del principio del mensaje es una captura de pantalla que intenté subir y no pude.

Dejame un correo tuyo o enviame tu libro para que pueda ver qué tenés en celda G3.

Para hacer las pruebas que te comenté, cuando te sale el mensaje de error tenés que presionar el botón 'Depurar' para que te muestre la línea errada y allí pasar el mouse y ver los contenidos.

Pero mejor realizá la 2da opción: colocá las 2 líneas que te agregué para que te envíe los mensajes y así lo comprobás por vos mismo.

Si no lo resolvés enviame tu libro. Sdos!

Hola, mi mail es [email protected]

Ya te escribí... quedo a la espera del libro. Sdos!

Ya te envié respuesta esta mañana, con un doc con imágenes para que veas el tema de la carpeta y subcarpeta del mes.

Reitero aquí mis comentarios, si está todo resuelto no olvides finalizar la consulta:


Bien, la macro es correcta .

Te adjunto un doc para que veas el resultado. Y debes tener presente que la subcarpeta, en este caso 'mayo', se encuentra en la misma carpeta que el libro que está guardado en 'TRABAJOS'.
Si ese no es tu caso debes pasarme la ruta del libro y la ruta de la subcarpeta para ajustarte las instrucciones de las variables.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas