Saltar al contenido

Listar hojas de libro (con formulas)


Gerson Pineda

Recommended Posts

publicado

Hola Gerson:

Que conste que tu has lanzado el primer ataque.

Mira que os gusta complicaros la vida, con lo fácil que es:

Sub Hojas()
For x = 1 To Worksheets.Count 'Bucle de 1 hasta nº de hojas
Cells(x + 1, 5) = Worksheets(x).Name 'Nombre de la hoja
Cells(x + 1, 6) = Worksheets.Count 'Nº total de hojas
Cells(x + 1, 7) = x 'Posición de la hoja
Next
End Sub
[/CODE]

Comparado con tener que escribir esta barbaridad:

[b][color=red]=SI(ESERROR(EXTRAE(INDICE(hojasdelibro;;FILAS($A$1:A2));ENCONTRAR("]";INDICE(hojasdelibro;;FILAS($A$1:A2));1)+1;31));"";EXTRAE(INDICE(hojasdelibro;;FILAS($A$1:A2));ENCONTRAR("]";INDICE(hojasdelibro;;FILAS($A$1:A2));1)+1;31))[/color][/b]

Reconócelo, si hasta tu mismo te sonrojas de la vergüenza. jejeje.

¡¡¡¡ Serán bienvenidos a Macroland todos los desertores de Formuland !!!

Saludos

publicado
=SI(ESERROR(EXTRAE(INDICE(hojasdelibro;;FILAS($A$1:A2));ENCONTRAR("]";INDICE(hojasdelibro;;FILAS($A$1:A2));1)+1;31));"";EXTRAE(INDICE(hojasdelibro;;FILAS($A$1:A2));ENCONTRAR("]";INDICE(hojasdelibro;;FILAS($A$1:A2));1)+1;31))

Buenas chicos.

Antoni,

en realidad la formula es algo mas larga y aun que no funcione sin rangos personalizados la pongo completa:

=SI(ESERROR(EXTRAE(INDICE((INDICE((INDICAR.DOCUMENTO(87+AHORA()*0));));;FILAS($A$1:A5));ENCONTRAR("]";INDICE((INDICE((INDICAR.DOCUMENTO(87+AHORA()*0));));;FILAS($A$1:A5));1)+1;31));"";EXTRAE(INDICE((INDICE((INDICAR.DOCUMENTO(87+AHORA()*0));));;FILAS($A$1:A5));ENCONTRAR("]";INDICE((INDICE((INDICAR.DOCUMENTO(87+AHORA()*0));));;FILAS($A$1:A5));1)+1;31))
Yo me considero mas Macroniano que Formuliano pero en este caso tengo que darle la enhorabuena a Gerson por la magnifica funcion, poder haber hecho eso sin macros tiene su comedura de cabeza. A veces hay que felicitar a los galos por su brebaje que en este caso nos ha preparado el gran druida Gerson de la aldea de los Galos. Tu macro bastante simplificada como siempre.

Gerson, muy buena formula, compleja y rotunda. Un dia tendremos que hacer una visita a la aldea para que nos des un poco de poción.

Saludos

publicado

Antoni!

Solo para que notes que no todo es macro jajaja, ademas tu codigo es bastante conocido por internet y por aqui en el foro, solo quiero demostrar que las formulas no estan de sobra y que muchas veces nos alucinan

Verzulsan gracias por valorar el aporte, yo no soy macro ni formula, me agrada conjugarlas, y la verdad me asombro como combinando, todo en Excel, digamos que no hay fronteras, mas las que nos ponemos nosotros mismos

Saludos a todos y que viva Excel jeje

publicado

Jajaja, me he reido un rato antoni con el archivo.

Te dejo aqui otra forma que se me ha ocurrido para contar caracteres de las formulas, espero que te mole ;)

Sub hola()
For Each x In ActiveSheet.UsedRange
z = z + Len(x.Formula) * x.HasFormula
Next
MsgBox Abs(z)
End Sub[/CODE]

Saludos!

publicado

Hola Santi:

Muy ingenioso el uso de HasFormula, no se me hubiera ocurrido multiplicar por un valor booleano.

Saludos

publicado

Antoni y Verzulsan, me parece que para ser MACRONIANOS de corazón o son muy jóvenes o tienen que investigar mas o les ataca el mal de alzhéimer. La fórmula que propone Gerson es en realidad un hibrido de Macro y formula.

La creación del nombre (hojasdellibro) esta efectuado con una función del antiguo lenguaje de macros de Excel (macrofunciones), por eso es que no se puede utilizar directamente en la hoja.

Aquí otra opción para la formula en la hoja de Excel.

=SI(FILAS($B$2:B2)>CONTARA(hojasdelibro);"";ESPACIOS(DERECHA(SUSTITUIR(INDICE(hojasdelibro;;FILAS($B$2:B2));"]";REPETIR(" ";500));250)))[/CODE]

Saludos

publicado

Ves Antoni esta vez si te gane jajaja

Saludos Sailepaty y en efecto son de las viejas macrofunciones, que lamentablemente no las conoci a fondo, pero que siguen vigentes

Salduos a todos

publicado
Antoni y Verzulsan, me parece que para ser MACRONIANOS de corazón o son muy jóvenes o tienen que investigar mas o les ataca el mal de alzhéimer.

Gracias por la duda sailepaty, pero lo mio, lamentablemente es el Alzheimer.

jajaja....

Gerson, es una victoria pasajera,......las fórmulas, como los dinosaurios, se extinguirán.

¡¡ No way !! que dicen los yankies

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.