[RESUELTO] Pasar seleccion de Cuadro combinado a hoja writer

Discute sobre el procesador de textos
Responder
stinorte
Mensajes: 14
Registrado: Vie Dic 17, 2021 1:47 pm

[RESUELTO] Pasar seleccion de Cuadro combinado a hoja writer

Mensaje por stinorte »

Hola a todos

Tengo un problema que al cual no le encuentro solucion, igual me podeis ayudar

Esta macro la cual funciona correctamente le he añadido un COMBOBOX (Cuadro combinado), al ejecutar la macro no me añade el valor del cuadro de combinado a la hoja writer.......El problema creo que esta aqui ( If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox") )..... pero no encuentro como solucionarlo.

Podria dejarlo todo como cuadro combinados, ya que podria elegir entre desplegable o cuadro de texto normal... peor no doy con ello (os dejo el archivo).....Gracias por vuestra ayuda....Un saludo

Global oDialogo As Object
Sub PasarSeleccionALaHoja
Dim oTablas As Object
Dim oTabla As Object
Dim oCelda As Object
Dim c As Integer
Dim sTmp As String
Dim mControls()
oTablas = ThisComponent.getTextTables()
oTabla = oTablas.getByName("Tabla1")
oCelda = oTabla.getCellByName("A1")
mControls = oDialogo.getControls()
For c = 0 To Ubound(mControls)
If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox") Then
sTmp = sTmp & mControls(c).SelectedItem & " "
End If
Next
oCelda.setString(sTmp)
oDialogo.EndExecute()
End Sub
Adjuntos
Ejemplo.odt
(13.16 KiB) Descargado 151 veces
Última edición por stinorte el Jue Ene 27, 2022 6:25 pm, editado 1 vez en total.
OpenOffice 4.1.7 Windows 7
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: Pasar seleccion de Cuadro combinado a hoja writer

Mensaje por Neftali R »

En el ciclo for cambias

Código: Seleccionar todo

      For c = 0 To Ubound(mControls)
         If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox")Then
            sTmp = sTmp & mControls(c).SelectedItem & " "
         End If
      Next
por

Código: Seleccionar todo

      For c = 0 To Ubound(mControls)
         If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox")Then
            sTmp = sTmp & mControls(c).SelectedItem & " "
         ElseIf mControls(c).supportsService("com.sun.star.awt.UnoControlComboBox")  Then
            sTmp = sTmp & mControls(c).Text & " "
         End If
      Next
Ese cuadro combinado es un tipo de objeto diferente a las listboxs, y tienen propiedades y métodos diferentes.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
stinorte
Mensajes: 14
Registrado: Vie Dic 17, 2021 1:47 pm

Re: Pasar seleccion de Cuadro combinado a hoja writer

Mensaje por stinorte »

Mil gracias Neftali R!!!

Ese era el problema

Un saludo
OpenOffice 4.1.7 Windows 7
Responder