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

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
alexisarteta
Mensajes: 23
Registrado: Mié Sep 20, 2017 2:11 pm

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

Mensaje 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..
Última edición por alexisarteta el Lun Oct 02, 2017 4:11 pm, editado 1 vez en total.
OpenOffice 3.3.0 en Windows 7 Profesional
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

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

Mensaje 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
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder