Nombre de hojas de calculo en lista

Tengo un libro con varias hojas de calculo que las genero con una macro según el nombre que le doy pero quisiera que al crear cada hoja el nombre se posicione en una celda y si esta esta ocupada que siga a la de abajo también que si le modifico el nombre se cambie en la celda en la que se encuentra y por ultimo que si elimino la hoja esta también se elimine en la celda en la que se encontraba.

1 Respuesta

Respuesta
1

Crea un nombre en el cual coloca esta fórmula (antigua función de macros 4.0)

=INDICAR.LIBRO(1)&T(AHORA())

Eso creará un vector de las etiquetas...

Ahora con INDICE y FILAS genera la lista completa... suponiendo que el nombre sea "Etiquetas"

Pon la fórmula

=SI.ERROR(EXTRAE( INDICE(Etiquetas, FILAS($A$1:$A1)), HALLAR("]",Etiquetas)+1,500), "")

En una celda... luego jala hacia abajo

Al final, graba el archivo habilitado para macros

Disculpa que quieres decir con esto

Crea un nombre en el cual coloca esta fórmula (antigua función de macros 4.0)

=INDICAR.LIBRO(1)&T(AHORA())

Eso creará un vector de las etiquetas...

Ve a la cinta Fórmulas... icono Asignar nombre y allí pones:

En nombre: Etiquetas

Y en

Se refiere a:         borras todo lo que hay y copias          =INDICAR.LIBRO(1)&T(AHORA())     

¡Gracias!   funciono a la perfeccion 

Hola Jaime de verdad gracias por todo pero quisiera saber si me puedes ayudar en algo mas tengo esta macro:

Private Sub CommandButton1_Click()
Dim nombreHoja As String
nombreHoja = InputBox("Escriba Razón Social:")
If nombreHoja = "" Then Exit Sub
Dim hoja As Worksheet
Set hoja = Worksheets.Add(After:=Worksheets(Worksheets.Count))
hoja.Name = nombreHoja
Sheets("Nuevo").Select
Range("C2").Select
End Sub

que me permite crear una nueva hoja y darle un nombre, pero quisiera que al crear esta hoja nueva me permita copiar el contenido de un rango de celdas de la hoja "Nuevo" con las mismas características en cuanto al formato.

ojala me puedas ayudar 

gracias por todo

Tu macro termina seleccionando la celda C2 en la hoja Nuevo... selecciona el rango que te interese... por ejemplo

Range("C2:J23").Select   ... o el rango que corresponda

Luego

Selection. Copy

Luego regresas a la ultima hoja...

Sheets(Sheets.Count).Select

Selecciona la celda donde quieras copiar las cosas (la esquina superior izquierda)... por ejemplo:

Range("C2").Select               .... o la celda que corresponda

Y finalmente pega alli la información y formato...

ActiveSheet. Paste

Todo lo que te indico se podría haber generado con la grabadora de macros

gracias nuevamente de verdad me funciono a la perfección pero se me ha presentado otra mejora que no se si me puedas ayudar y es lo siguiente:

la Hoja "Nuevo" es la base de datos y como ves en la macro que te envíe  desde ella puedo crear una hoja, asignarle un nombre ahora con tu ayuda copiar un rango de celdas pero quisiera saber si a esta se le pueda agregar que al crear la hoja le cree un CommandButton y este contenga una macro que al darle clic me regrese a la hoja "Nuevo"

Crear un botón desde una macro no es problema. Se registra todo con la grabadora de macros.

Crear una macro desde una macro es un procedimiento mucho más complicado y requiere entre otras cosas cambiar algunas opciones dentro de Excel para dejar que Excel "confíe" en el acceso a los módulos... Yo sugeriría una solución más original y sencilla:

Programar la macro para que duplique una hoja oculta, que ya tenga este botón, con el botón y la macro ya programada...

Finaliza esta consulta y haz otra direccionada a mi... mándame el archivo... y le agregó la hoja, el botón y modificamos la macro original

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas