Referencia formulario macro

Discute sobre la aplicación de hojas de cálculo
Responder
Albert
Mensajes: 14
Registrado: Vie Jul 26, 2013 10:25 am

Referencia formulario macro

Mensaje por Albert »

Hola! Tengo un formulario hecho con un "diálogo BASIC" , que es llamado desde un botón de la hoja de cálculo. Hasta ahora tenía:

Dim oDialogo As Object
Sub Mostrar_Dialogo
DialogLibraries.LoadLibrary("Standard")
oDialogo=Createunodialog(DialogLibraries.Standard.Dialogo)
oDialogo.Execute()
End Sub

Y funcionaba. Protegí el código de la macro con un password, y me generaba error en "Dim oDialogo As Object", eliminado ésta línea ya no genera error, se muestra el formulario, pero a la hora de "guardar" (botón insertado en el formulario) no puedo hacer referencia al formulario, pq oDialogo no está definido. He probado sin éxito:
'DialogLibraries.LoadLibrary("Protected")
'oDialogo = createUnoDialog(DialogLibraries.Protected.FORM_DatosF)
'oDialogo = ThisComponent.getCurrentController.getActiveSheet.getDrawPage
'oDialogo = ThisComponent.FormDocuments.getByName( "Datos" )
'oDialogo = ThisComponent.getCurrentController

Alguna idea? Saludos
OpenOffice 3.4.1 en Windows Vista
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Referencia formulario macro

Mensaje por fornelasa »

Hola, sugiero subir archivo ejemplo con la clave para poder mirarlo.
Aquí un archivo ejemplo, se supone no falla, solo cambia en la macro tu ruta de archivo correcta.
La clave es: estrella

Saludos, Federico.
Adjuntos
Proteger.ods
Proteger
(13.39 KiB) Descargado 95 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Albert
Mensajes: 14
Registrado: Vie Jul 26, 2013 10:25 am

[RESUELTO] Re: Referencia formulario macro

Mensaje por Albert »

Muchas gracias Federico por tu aportación!! El problema era doble:

- Puse los diálogos dentro de la librería protegida y deben estar en la standard
- La sentencia "Dim oDialogo As Object" debe estar en el primer módulo, me explico: si se tiene más de un módulo, oBasic, los ordena por nombre alfabético, y esta sentencia debe estar en la primera de ellas (empezando por la izquierda).

Otro tema que leí, es que hay gente que busca que al abrir una hoja, no esté en "modo diseño" y veo que en tu ejemplo es así, por si a alguien le interesa.

Saludos y muchas gracias!
OpenOffice 3.4.1 en Windows Vista
Responder