Saltar al contenido

Error en formulario con Rowsource


Recommended Posts

publicado

 

Hola compañeros:

Tengo un formulario que contiene múltiples comboboxes.

Tengo definidos una serie de NOMBRES en la hoja de cálculo y asigno en la programación de cada uno de los comboboxes mediante su propiedad Rowsource el nombre que le corresponde.

De esta manera cuando añado a la lista un elemento, automáticamente lo tengo disponible en el combobox la siguiente vez que ejecute el formulario.

Todo parece funcionar correctamente excepto cuando ejecuto otra hoja de Excel (incluso una nueva hoja sin datos).

Si, por ejemplo tengo una hoja de excel nueva abierta y ejecuto mi hoja excel con mi formulario, no me coge los datos en los comboboxes. Es como si las definiciones de nombres se hubiesen perdido.

 

¿Conoceis alguna forma de evitar esto?.

 

¿Hay alguna otra alternativa para llenar los comboboxes que me permita agregar nuevos elementos de forma cómoda?.

 

Espero haber explicado el problema correctamente.

Gracias por vuestra inestimable aportación.

Saludos.

publicado
Hace 17 minutos , jevizente dijo:

 

Hola compañeros:

Tengo un formulario que contiene múltiples comboboxes.

Tengo definidos una serie de NOMBRES en la hoja de cálculo y asigno en la programación de cada uno de los comboboxes mediante su propiedad Rowsource el nombre que le corresponde.

De esta manera cuando añado a la lista un elemento, automáticamente lo tengo disponible en el combobox la siguiente vez que ejecute el formulario.

Todo parece funcionar correctamente excepto cuando ejecuto otra hoja de Excel (incluso una nueva hoja sin datos).

Si, por ejemplo tengo una hoja de excel nueva abierta y ejecuto mi hoja excel con mi formulario, no me coge los datos en los comboboxes. Es como si las definiciones de nombres se hubiesen perdido.

 

¿Conoceis alguna forma de evitar esto?.

 

¿Hay alguna otra alternativa para llenar los comboboxes que me permita agregar nuevos elementos de forma cómoda?.

 

Espero haber explicado el problema correctamente.

Gracias por vuestra inestimable aportación.

Saludos.

Creo que tu problema es que no especificas de que hoja coges los datos, por lo tanto los coge de la hoja activa. Como he dicho creo por que es muy difícil ver lo que quieres sin un archivo excel subelo y si puedo te ayudo. 

publicado

Hola Vendetta86.

En primer lugar gracias por tu interés y tu tiempo.

Te subo un ejemplo simplificado a ver si consigo explicar mejor el problema.

Me gustaría que hicieras la siguiente prueba.

Ejecuta el excel.

Se abrira un formulario MENU con un único boton de comando.

Este botón de comando llama a un formulario que contiene un par de Comboboxes basados en definiciones de nombres.

Como podrás comprobar funcionan correctamente.

Ahora intenta hacer la siguiente prueba:

Ejecuta de nuevo el excel que te envío. Y ahora una vez abierto el formulario MENU, abre un nuevo archivo Excel  en blanco. (Con el MENU activo pero sin pulsar el botón de comando).

Una vez abierto el nuevo archivo EXCEL, ahora SI...PULSA EL BOTON DE COMANDO que lleva al FORMULARIO1.

Como puedes ver...el combobox no muestra los nombres. Está vacio.

Ese es el problema.

La pequeña utilidad que estoy desarrollando requiere de poder abrir otros excel distintos sin que interfieran para nada en el uso de la pequeña aplicación.

Y me encuentro atascado en este punto.

Disculpad si falta algun detalle que os pueda dar alguna pista adicional.

Gracias de nuevo.

 

Prueba.xlsm

publicado

Hola compañeros:

He dado con la solución a este asunto.

Parece ser que era un tema de donde estaba el foco en ese momento.

Si tenemos el foco en otro archivo excel, los nombres que prevalecen son los de ese archivo excel vacio.

Sin embargo si devolvemos el foco al excel que contiene nuestra aplicación, las deficiniciones de nombres funcionarán de nuevo correctamente.

Esto lo he hecho con el uso de estos comandos:

    Windows("Prueba.xlsm").Activate
    Worksheets("Datos").Activate

Lo que consiguen es primero seleccionar la aplicación excel que nos interes y luego activar la hoja de datos que contiene las definiciones de nombres.

Gracias por vuestra colaboración.

publicado

Si eso era lo que te comentaba antes, de todas formas esto es una idea o como yo lo hago cuando cargo listas no lo hago como tu desde el propio menú de propiedades, programo que al iniciar el formulario se carguen los valores de las listas, te dejo un ejemplo. Usando esta opción puedes hacer rangos dinámicos y estar leyendo de una hoja o libro según especifiques sin tener que tenerlo activo. Si picas solo el formulario donde están las 2 listas te aparece como se cargan los rangos. 

Prueba solucion cargar listas al iniciar formulario. .xlsm

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.