obtener nombre de las hojas de un libro sin abrirlo

04/02/2007 - 02:58 por Ivan | Informe spam
hola a todos

prácticamente el asunto lo dice todo: ¿es posible obtener vía código los
nombres de las hojas de un libro sin tener que abrirlo? no me haría falta
acceder a los datos de dicho libro, tan solo obtener estos nombres, y de
paso (como mucho, pero no imprescindible) el valor de otras propiedades tipo
: fecha creación, ultima modificación. etc..

para esto ultimo he pensado que quizás me valiera DocumentProperty (no lo he
probado ), pero lo cierto es que para el nombre de las hojas no se muy bien
como intentarlo

si podéis echarme una mano os lo agradezco

un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#11 dwx110
08/03/2007 - 21:07 | Informe spam
Tengo un problema con respecto a los nombres de las hojas, lo que yo
quiero saber es si una hoja x se encuentra dentro de un libro sin
tener que abrir este, entonces lo que necesito saber es como obtener
los nombres de las hojas y ademas el numero de estas de un libro en
excel, pero no deseo utilizar ADO ni DAO, ya que ademas de no tener
conocimientos de esto, creo que tampoco es necesario. Entonces mas que
todo quisiera que la rsepuesta fuese utilizando lso comandos del VB
con excel.

Muchas Gracias.
Respuesta Responder a este mensaje
#12 Ivan
09/03/2007 - 02:39 | Informe spam
hola,

a la espera de lo que diga Hector Miguel, u otro experto, permiteme que te
comente mi opinion:

pero no deseo utilizar ADO ni DAO, ya que ademas de no tener
conocimientos de esto, creo que tampoco es necesario
fuese utilizando lso comandos del VB con excel.



creo que si la respuesta de Hector a ido por estos derroteros (ADO), dudo
que haya una forma mas 'barata' (como seguramente diria el) de realizarlo.
En cualquier caso los conocimientos de ado son totalmente innecesarios (yo
no tengo ni la mas remota idea, y me ha venido de perlas) para aplicar el
codigo de Hector. Lo unico a tener en cuenta es activar la referencia que el
menciona (Microsoft ADO Ext. x.x for DDL and Security)

lo que necesito saber es como obtener los nombres de las hojas



esto es exactamente lo que hace la macro de Hector

y ademas el numero de estas de un libro



le puedes añadir un contador cada vez que se cumplan las condiciones de la
variable Tmp

quiero saber es si una hoja x se encuentra dentro de un libro sin tener
que abrir este



si solo quieres saber si existe determinada hoja en determinado libro (y,
claro, eliminas los reparos con ado), puedes usar una funcion parecida a
esta que es una adaptacion del codigo de Hector :(espero que con su
permiso)->



Function ExisteHoja(ByVal Archivo As String, _
ByVal hj As String) As
Boolean
Dim Libro As ADOX.Catalog, Hoja As ADOX.Table, _
Tmp As String
Set Libro = New ADOX.Catalog
Libro.ActiveConnection = _
"Provider=MSDASQL.1;Data Source=Excel Files;Initial Catalog=" & Archivo
For Each Hoja In Libro.Tables
Tmp = Application.Substitute(Hoja.Name, "'", "")
If Right(Tmp, 1) = "$" Then
If Left(Tmp, Len(Tmp) - 1) = hj Then ExisteHoja = True: Exit For
End If
Next
Set Libro = Nothing
End Function

y la puedes llamar mas o menos asi: ->

Sub testHayHoja()
Dim arch As String
arch = "Ruta y\Sub-carpetas a tu\Archivo cerrado.xls"
Debug.Print ExisteHoja(arch, "Nombre de la Hoja")
End Sub

en cualquier caso, a lo mejor estoy equivocado, pero cuando HM a tirado por
aqui dudo que haya una solucion mas sencilla.

espero te ayude

un saludo
Ivan
Respuesta Responder a este mensaje
#13 dwx110
09/03/2007 - 15:52 | Informe spam
Me parece que esta bien la cosa, ahora el problema es que no se como
hacer para activar las referencias Microsoft ADO Ext. x.x for DDL and
Security.

Muchas gracias.
Respuesta Responder a este mensaje
#14 Ivan
09/03/2007 - 22:45 | Informe spam
hola,

en el editor de Visual Basic -> menu 'Herramientas' -> 'Referencias' -
buscala en la lista que te aparece. Supongo que la tendras, aunque


no estoy seguro de si depende de la version del office. Si no
estuviera, vuelve a preguntar y seguro que alguien mas experto te lo
aclara.

un saludo
Ivan
Respuesta Responder a este mensaje
#15 dwx110
20/03/2007 - 20:00 | Informe spam
Muchas gracias, han sido de gran ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida