[RESUELTO] Pasar selccion de listbox a hoja writer
[RESUELTO] Pasar selccion de listbox a hoja writer
Hola, buenos dias
Soy nuevo en esto de los macros y llevo dias intentado hacer el texto que seleccione en un cuadro de dialogo pase a la hoja writer desde donde se abre el cuadro de dialgo, adjunto archivo.
La idea es selccionar diferentes opciones de diferentes listbox y al darle al boton, esas opciones se escriban una detras de la otra en el documento odt justo debajo del boton para abrir dicho cuadro de dialogo.
Gracias por vuestra ayuda, un saludo
Soy nuevo en esto de los macros y llevo dias intentado hacer el texto que seleccione en un cuadro de dialogo pase a la hoja writer desde donde se abre el cuadro de dialgo, adjunto archivo.
La idea es selccionar diferentes opciones de diferentes listbox y al darle al boton, esas opciones se escriban una detras de la otra en el documento odt justo debajo del boton para abrir dicho cuadro de dialogo.
Gracias por vuestra ayuda, un saludo
- Adjuntos
-
- Ejemplo.odt
- (12.62 KiB) Descargado 165 veces
Última edición por stinorte el Vie Dic 24, 2021 12:11 pm, editado 1 vez en total.
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Hola, bienvenido al foro.
Esta función hace lo que estás pidiendo.
Importante, para que funcione tienes que declarar oDialogo
Fuera del primer SUB, preferiblemente al inicio del módulo.
Esta función hace lo que estás pidiendo.
Código: Seleccionar todo
Sub PasarSeleccionALaHoja
Dim oCursor As Object, c As Integer, sTmp As String, mControls()
mControls = oDialogo.getControls()
oCursor = ThisComponent.getCurrentController().getViewCursor()
oCursor.jumpToEndOfPage()
sTmp = Chr(13)
For c = 0 To Ubound(mControls)
If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox") Then
sTmp = sTmp & mControls(c).SelectedItem & Chr(13)
End If
Next
oCursor.setString(sTmp)
End Sub
Código: Seleccionar todo
Dim oDialogo As Object
Fuera del primer SUB, preferiblemente al inicio del módulo.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Pasar selccion de listbox a hoja writer
Hola, ante todo gracias por responder Neftali
Al poner el codigo de me has puesto me da este error
oDialogo esta fuera del primer sub
Gracias por vuestra ayuda.
Al poner el codigo de me has puesto me da este error
oDialogo esta fuera del primer sub
Gracias por vuestra ayuda.
- Adjuntos
-
- Ejemplo.png (31.02 KiB) Visto 3302 veces
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Ese Sub tiene que ejecutarse desde el botón del formulario, solo se puede ejecutar mientras el dialogo esté abierto.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Pasar selccion de listbox a hoja writer
Hola
Si, asi he lo he puesto, al selecionar las listbox y darle al boton para que se pase a la hoja sale ese error
Si, asi he lo he puesto, al selecionar las listbox y darle al boton para que se pase a la hoja sale ese error
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Bueno, ejecutalo paso a paso con F8, me parece que cómo lo tienes en módulos diferentes, oDialogo queda como "Null" en el módulo donde está PasarSeleccionALaHoja, si quieres tener ambos sub en módulos diferentes, tendrías que declarar oDialogo con algo diferente a Dim, Global podría funcionar.
Ojo importante, si en el sub donde se invoca el dialogo hay declarada una variable oDialogo, entonces cuando se abra el dialogo va a estar asignado a la variable local del SUB y no va a afectar la variable Privada o Global que está fuera del SUB.
Código: Seleccionar todo
Global oDialogo As Object
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Pasar selccion de listbox a hoja writer
Efectivamente Neftali R ahora si lo hace, pasa la seleccion de las listbox a la hoja
Lo unico que lo pasa en lineas diferentes, se podria poner que al pasar la seleccion de las listbox las pusiera en la misma linea una de tras de la otra? ( selccion de listbox 1 listbox 2 listbox 3 listbox 4.....) todo en la misma linea?
Gracias por vuestra ayuda
Lo unico que lo pasa en lineas diferentes, se podria poner que al pasar la seleccion de las listbox las pusiera en la misma linea una de tras de la otra? ( selccion de listbox 1 listbox 2 listbox 3 listbox 4.....) todo en la misma linea?
Gracias por vuestra ayuda
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Si lees el código, te darás cuenta de que la cadena de texto que se pega en la hoja es sTmp, y está construida de la siguiente manera:
Chr(13) es un salto de linea (Y Chr(10) también), está el salto de línea inicial y después es que construye la cadena, en la segunda linea donde se modifica sTmp puedes poner lo que quieras y eso será lo que se escriba en el archivo.
Chr(9) es un TAB, pero no estás limitado a usar Chr() para concatenar strings, puedes introducir cualquier cadena que quieras.
Incluso puedes hacer cosas más "complicadas" cómo:
Todos son válidos, depende de ti colocar exactamente lo que quieres.
Código: Seleccionar todo
sTmp = Chr(13)
sTmp = sTmp & mControls(c).SelectedItem & Chr(13)
Código: Seleccionar todo
sTmp = sTmp & mControls(c).SelectedItem & Chr(9)
Código: Seleccionar todo
sTmp = sTmp & mControls(c).SelectedItem & " "
sTmp = sTmp & mControls(c).SelectedItem & " No sé, tú dime "
sTmp = sTmp & mControls(c).SelectedItem & " Vivan los elefantes! "
Código: Seleccionar todo
sTmp = Chr(13)
For c = 0 To Ubound(mControls)
If mControls(c).supportsService("com.sun.star.awt.UnoControlListBox") Then
sTmp = sTmp & " Cuadro " & c & ": " & mControls(c).SelectedItem
End If
Next
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Pasar selccion de listbox a hoja writer
Muchas gracias Neftali R !!!!!, lo hace todo a al perfeccion
Podria ponerse que lo que se pase de los listbox quedaria dentro de una celda de una tabla en la hoja?, con eso ya solucionaria el problema que tengo con este documento
Muchas gracias,
Podria ponerse que lo que se pase de los listbox quedaria dentro de una celda de una tabla en la hoja?, con eso ya solucionaria el problema que tengo con este documento
Muchas gracias,
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Señor Stinorte,
Eso último que también necesita tendría que haberlo dicho desde el principio, la próxima intenta hacer las peticiones lo más específicas posibles.
La verdad eso último no lo sé hacer, es más, no tengo idea de cómo hacerlo, soy usuario de Calc y conozco y domino muchas funciones del API de LibreOffice para Calc, pero de Writer no conozco APIs más allá de las básicas, cómo hacer una tabla desde el código y cómo moverme entre las distintas celdas en una tabla de Writer es algo que me va a tomar un tiempo averiguar...
Eso último que también necesita tendría que haberlo dicho desde el principio, la próxima intenta hacer las peticiones lo más específicas posibles.
La verdad eso último no lo sé hacer, es más, no tengo idea de cómo hacerlo, soy usuario de Calc y conozco y domino muchas funciones del API de LibreOffice para Calc, pero de Writer no conozco APIs más allá de las básicas, cómo hacer una tabla desde el código y cómo moverme entre las distintas celdas en una tabla de Writer es algo que me va a tomar un tiempo averiguar...
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Pasar selccion de listbox a hoja writer
Muchas gracias Neftali R por tu ayuda, me has ayudado mucho
Lo de ponerlo en una celda de una tabla ha surgido segun avanzaba el documento, no era el principo de la idea
Pero muchisimas gracias, un saludo
Lo de ponerlo en una celda de una tabla ha surgido segun avanzaba el documento, no era el principo de la idea
Pero muchisimas gracias, un saludo
OpenOffice 4.1.7 Windows 7
Re: Pasar selccion de listbox a hoja writer
Hola de nuevo
Gracias a la ayuda de Neftali R y algunos hilos mas de este foro, he conseguido hacer el proposito de este hilo
Os dejo aqui el archivo por si le hace falta a aguien algo similar
Muchas gracias a todos y en especial a Neftali R.
Gracias a la ayuda de Neftali R y algunos hilos mas de este foro, he conseguido hacer el proposito de este hilo
Os dejo aqui el archivo por si le hace falta a aguien algo similar
Muchas gracias a todos y en especial a Neftali R.
- Adjuntos
-
- Ejemplo.odt
- (13.21 KiB) Descargado 160 veces
OpenOffice 4.1.7 Windows 7