Editar el nombre de una tabla de Excel automáticamente

Solo consultas sobre Bases de Datos y Tablas Dinámicas Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

Editar el nombre de una tabla de Excel automáticamente

Notapor rafaher94 » 21 Sep 2018 12:22

¡Saludos!

Quisiera saber si alguien sabe de alguna fórmula o macro que me permita cambiar el nombre de una tabla según un valor predeterminado, digamos el nombre de la hoja que la contiene o una celda específica en la hoja que lo contiene.

Necesito esto para facilitar mis referencias de búsqueda cuando duplico hojas, ya que por defecto las nuevas tablas que se generan tienen nombres como Tabla111, y así... Y me gustaría que simplemente al duplicarla el nombre de la tabla sea el nombre de la hoja o de una celda que tenga al principio como "título" deseado de esa tabla.
rafaher94
Miembro Nuevo
Miembro Nuevo
 
Mensajes: 1
Registrado: 21 Sep 2018 12:15

Re: Editar el nombre de una tabla de Excel automáticamente

Notapor Héctor Miguel » 22 Sep 2018 16:00

1) las tablas (listobjects) son un objeto que "se cuece aparte" por lo que debes adaptarte a sus requerimientos o cambiar de forma de "tablas"

2) el unico evento que se dispara al copiar hojas (por cambiar a otra) es: Private Sub Workbook_SheetActivate(ByVal Sh As Object) (en el ThisWorkbook) y esto sucede aun antes de cambiar el nombre a la hoja copiada <= OJO

3) si te decides por nombrar las tablas segun el nombre de "su" hoja, prueba una macro (ejecutada a voluntad) +/- como esta (modulo estandar):
Código: Seleccionar todo
Sub corrigeNombreTablas()
  Dim hoja As Worksheet
  For Each hoja In Worksheets
    hoja.ListObjects(1).Name = hoja.Name
  Next
End Sub

3) se asume que SOLO hay una tabla (listobject) en cada hoja
a) si el nombre de la hoja contiene espacios, se sustituiran por un guion bajo ( _ )
b) si quieres el nombre de la tabla en una hoja sustituye el ... = hoja.Name por la celda que contendra el nombre de la tabla

4) si en la hoja "base" de las copias ya tienes formulas con referencia a "su" tabla... NO te escapas de modificar las formulas en las hojas copiadas

saludos,
hector.
Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4729
Registrado: 26 Mar 2005 18:31


Volver a Bases de Datos y Tablas Dinámicas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados
cron