Página 1 de 1

[RESUELTO]Macro Llenar un cuadro comb. con rango de datos

Publicado: Mar Sep 26, 2017 2:43 pm
por alexisarteta
Buenas, vuelvo a abrir mi caso para llenar el cuadro combinado, ya que de los ejemplos que anteriormente utilice explican como llenarlo con un Array pero necesito llenarlo con un rango de datos de una columna, esta columna posee datos duplicados, y quiiero que solo salgan los datos sin duplicarse y sin filas en blanco, ejemplo

Columna G
Cobrador
JAM MOLINA
<-------------------------Fila en blanco
RAFAEL MENA <-----------------------------------dato duplicado
JAM MOLINA<-------------------------Dato duplicado
GALY ALVAREZ
JAM MOLINA
HECTOR DARIO BULA
MENSAJERIA DRISTRIENVIOS S.A.S.
DANNY ALTAMIRANDA
DANIEL PEREZ <---------------------------------dato duplicado
DANIEL PEREZ
RAFAEL MENA

en el cuadro combinado deberia solo estar estos datos sin la fila vacia y sin los duplicados, y adicionalmente, la primera opcion del combo debe ser "MOSTRAR TODOS"

El cuadro Combinado esta directamente sobre la hoja de calc, no esta dentro de un formulario de dialogo.

lo he estado intentando de esta manera pero no funciona

Código: Seleccionar todo

Arraydep = ThisComponent.Sheets.getByName("Maestro").getCellRangeByName("G8:G15")
oForm.getByName("ComboDep").StringItemList = ArrayDep
gracias..

Re: Macro Llenar un cuadro combinado con rango de datos,sin

Publicado: Mar Sep 26, 2017 4:27 pm
por mauricio
me parece (reitero el me parece), un error grave de diseño tener datos duplicados, si tu lista es una lista con otros valores, es posible que esto sea correcto, pero no lo es que intentes de esta lista, llenar un control. Esto solo te complica el código y te da espacio para errores futuros, mi recomendación es que rediseñes tus datos, o primero filtres en otra área y de esta tomes los datos.

Ahora, para llenar los datos:
Si tu haces:

Código: Seleccionar todo

Arraydep = ThisComponent.Sheets.getByName("Maestro").getCellRangeByName("G8:G15")
Lo que tienes en Arraydep es un objeto "rango de celdas", NO los valores de las celdas.

Como trabajar con celdas y su datos esta ampliamente documentado, por aca:
https://wiki.openoffice.org/wiki/ES/Man ... ndoConCalc

Los controles de formulario aceptan rangos de datos, documentado también en el wiki, pero en tu caso no servirá al tener valores duplicados.

pero... si de algo sirve... no usen Basic, es mejor usar Python.

Saludos