Imprimir página | Cerrar ventana

Listar hojas excel en cuadro lista access

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84209
Fecha de impresión: 24/Abril/2019 a las 00:02


Tema: Listar hojas excel en cuadro lista access
Publicado por: rokoko
Asunto: Listar hojas excel en cuadro lista access
Fecha de publicación: 06/Enero/2019 a las 19:27
Buenas y feliz año a todos!!!

Estoy importando datos de una hoja de excel a un tabla access, hasta hay bien.
Con un codigo que utilizo si la hoja esta la primera en el libro excel lo hace perfectamente.

Pero estoy probando otro codigo, el cual funciona bien si le digo el nombre de la hoja excel.
Pero me gustaria poder elegir esas hojas selecionandolas en un cuadro de lista en access.

Como podria listar los nombre de las hojas del excel en un cuadro de lista en access??

Saludos



Respuestas:
Publicado por: Mihura
Fecha de publicación: 06/Enero/2019 a las 21:29
Entiendo que tendrás el Excel abierto por automatización ... siendo así, el camino para obtener los nombres de las hojas sería:

Cita
Dim Hoja As Object
    For Each Hoja In ActiveWorkbook.Sheets
        Debug.Print Hoja.Name
    Next
 

A partir de aquí cargarlo en un cuadro de lista ... coser y cantar Tongue




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: rokoko
Fecha de publicación: 06/Enero/2019 a las 23:38
Lo de coser y cantar esta fallandoBig smile
Tengo esto, lee las hojas a trabes del bucle, pero lo de pasarlo al cuadro de lista no lo consigo..
'creo un objeto:
    Set objExcel = CreateObject("Excel.Application")

'Lo abro
    Set LIBEXCEL = objExcel.Workbooks.Open("C:\Users\Norco\Desktop\Libro.xls")

Dim Hoja As Object
    'recorro las hojas del libro excel
    For Each Hoja In LIBEXCEL.Sheets
        'Debug.Print Hoja.Name
        MsgBox Hoja.Name
        
    Next


Publicado por: Mihura
Fecha de publicación: 07/Enero/2019 a las 09:06
... y para añadirlas a un cuadro de lista:

me.lista.AddItem Hoja.Name


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: rokoko
Fecha de publicación: 07/Enero/2019 a las 10:27
yo volviendome loco con el rowsouce..... La lista hay que ponerla en lista de valores.

Se puede cerrar. Muchas gracias


Publicado por: Mihura
Fecha de publicación: 07/Enero/2019 a las 10:57
Podrías hacerlo también con el Rowsource:

Dim Xs as string, Hoja as Object
.
.
For Each Hoja in LIBEXCEL.Sheets
    Xs = Xs & ";" & Hoja.Name
Next
Me.lista.RowSource = mid$(Xs, 2)    'el Mid$ es para quitar el primer ;


OJO, escrito al vuelo.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es



Imprimir página | Cerrar ventana