Foros del Web » Programación para mayores de 30 ;) » .NET »

Ejecutar código en segundo plano VBA-Excel

Estas en el tema de Ejecutar código en segundo plano VBA-Excel en el foro de .NET en Foros del Web. Hola gente. Veréis, tengo una aplicación en excel que vincula muchas tablas de Access y tarda en cargarlas unos 4-5 segundos (Hay bastante info y ...
  #1 (permalink)  
Antiguo 10/05/2012, 02:31
 
Fecha de Ingreso: enero-2012
Mensajes: 87
Antigüedad: 12 años, 11 meses
Puntos: 1
Ejecutar código en segundo plano VBA-Excel

Hola gente. Veréis, tengo una aplicación en excel que vincula muchas tablas de Access y tarda en cargarlas unos 4-5 segundos (Hay bastante info y además ésta se modifica cuando llega a Excel).

Me gustaría que apareciera un form con una barra de progreso que se fuera rellenando mientras se van cargando las tablas. Eso supone ejecutar parte del código en segundo plano y no tengo ni idea de cómo se puede hacer en vba (ni siquiera de si se puede hacer).

He leído cosas sobre un control llamado Backgroundworker y sobre multithreading en Excel, pero ninguna me ha aclarado nada (según he leído, el multithreading no es posible).

Estéticamente el programa daría un salto bastante grande y si no es complicarse mucho la vida, me gustaría intentarlo.

¿Me ayudáis?

Gracias!
  #2 (permalink)  
Antiguo 10/05/2012, 03:44
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Ejecutar código en segundo plano VBA-Excel

Pues por lo que sé, no hay soporte directo para multithreading en VBA (ppr lo menos en lo referente a Excel). Para tener soporte de hilos habría que utilizar directamente el Api de Win32 (directamente o creando una dll en la que dieses soporte a los hilos), lo cual no es sencillo.

Saludos.
  #3 (permalink)  
Antiguo 10/05/2012, 03:49
 
Fecha de Ingreso: enero-2012
Mensajes: 87
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Ejecutar código en segundo plano VBA-Excel

Gracias por tu respuesta :)

¿Sabrías indicarme cómo utilizar la API de win32 para el tema en cuestión?

Voy un poco perdido

Muchas gracias!
  #4 (permalink)  
Antiguo 10/05/2012, 10:00
 
Fecha de Ingreso: enero-2012
Mensajes: 87
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Ejecutar código en segundo plano VBA-Excel

Hola de nuevo!

Lo he conseguido sin usar threads ni controles raros.


He creado un form (en cuyo evento Activate he metido el main) con una barra de progreso (en realidad un label cuyo relleno es de color rojo y va hacíendose más ancho conforme avanza el programa main).

El efecto no puede ser mejor, por si alguno le sirve de algo ;)

Gracias al forero que respondió!

Etiquetas: plano, segundo, tabla, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:17.