hacer lista de los nombre de las hojas de un documento en excel

15/05/2005 - 22:26 por BARRIOS | Informe spam
Tengo un documento en excel de 200 hojas, cada hoja tiene un nombre. Pero
necesito crear una lista (tipo índice), con el nombre de cada hoja. ¿Hay
alguna opción que me ayude a no escribir cada nombre de hoja?

Preguntas similare

Leer las respuestas

#1 KL
15/05/2005 - 23:17 | Informe spam
Hola Barrios,

Prueba el siguiente codigo. Este codigo lo puedes ejecutar desde cualquier
modulo y creara un indice en la primera hoja del libro activo.

Saludos,
KL

'-Inicio Codigo--
Sub ListarHojas()
Dim i As Integer
Dim hIndice As Worksheet
Dim h
Dim hTipo As String
Dim hVisible As String
Dim hProtegida As String

Set hIndice = ActiveWorkbook.Worksheets(1)

With hIndice
.Cells(1, 1) = "Nombre"
.Cells(1, 2) = "Tipo"
.Cells(1, 3) = "Visible"
.Cells(1, 4) = "Protegida"
.Range("1:1").Font.Bold = True
i = 2
For Each h In ActiveWorkbook.Sheets
If h.Type = 3 Then
hTipo = "Grafico"
Else
hTipo = "Hoja de calculo"
End If
If h.Visible = xlSheetVisible Then
hVisible = "Verdadero"
Else
hVisible = "Falso"
End If
If h.ProtectContents Then
hProtegida = "Verdadero"
Else
hProtegida = "Falso"
End If
.Cells(i, 1) = h.Name
.Cells(i, 2) = hTipo
.Cells(i, 3) = hVisible
.Cells(i, 4) = hProtegida
i = i + 1
Next h
End With
End Sub
'-Fin Codigo--
Respuesta Responder a este mensaje
#2 KL
16/05/2005 - 11:55 | Informe spam
Hola de nuevo,

Me acabo de acordar de otra manera de hacerlo.

1) menu Insertar>Nombre>Definir
2) escribir el nombre Hojas, en vez de una referencia asignarle la siguiente
formula:
=INDICAR.LIBRO(1) (en ingls GET.WORKBOOK), pulsar Anadir, pulsar Aceptar.
3) en la columna [A] poner los numeros de hojas, p.ej.: [A1]=1, [A2]=2,
[A3]=3, etc.
4) en la columna B (en este caso p.ej. en la celda [B1]) poner la siguiente
formula y copiarla hacia abajo:
=SI(O(A1="";ESERROR(INDICE(Hojas;A1)));"";EXTRAE(INDICE(Hojas;A1);ENCONTRAR("]";INDICE(Hojas;A1))+1;256+AHORA()))

Notas:
- Este metodo NO es recomendado para XL97 o 2000 ya que segun Harlan Grove
puede provocar el fallo y cierre de Excel con la perdida de todos los datos
no guardados ( http://tinyurl.com/49oqa )
- La funcion AHORA() esta para q la formula sea volatil y se actualize en
tiempo real.
- La ventaja de este metodo es q se actualiza automaticamente al
recalcularse las formulas.
- Un pequeño problema - no se actualiza automaticamente al insertar nueva
hoja (si - al eliminarlas o cambiar de nombre), es necesario un recalculo de
formulas adicional.

Saludos,
KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida