[RESUELTO] Ejecutar dos macros en un solo boton

Discute sobre la aplicación de hojas de cálculo
Responder
sancor
Mensajes: 34
Registrado: Lun Mar 23, 2015 3:22 pm

[RESUELTO] Ejecutar dos macros en un solo boton

Mensaje por sancor »

Hola, buen dia a todos. Tengo dos macros que por separado funcionan, pero cuando trato de ponerlos a funcionar juntos dan error.
El primer macro es uno para poner una firma en formato imagen(Gracias Federico), es este:

Código: Seleccionar todo

Sub InsertartImagen
Dim oSize as New com.sun.star.awt.Size
      oSize.width = 6500
     oSize.height = 6500          
      ActiveSheet = ThisComponent.CurrentController.ActiveSheet
         servicio = "com.sun.star.drawing.GraphicObjectShape"
           oShape = ThisComponent.createInstance(servicio)
            oShape.setSize(oSize)
oShape.GraphicURL = convertToURL("C:\imagen\javier.jpg")
         Drawpage = ActiveSheet.DrawPage
          Drawpage.add(oShape)
            oShape.setPropertyValue("Anchor", ActiveSheet.getCellRangeByName("B33"))
           oShape.LayerID = 1
End Sub
Asignado a un boton, funciona perfecto. El problema con este macro es que tengo que copiar las imagenes a todos los involucrados en sus respectivas computadoras. Asi que pense como opcion inhabilitar el boton de la firma una vez que fuese presionado, para que otros no lo presionen. Buscando en la web encontre una macro para eliminar el boton una vez presionado, lo que me servia barbaro, porque al no existir boton no es posible ejecutar el macro anterior que inserta la firma de otra persona.
El macro que borra el boton es este:

Código: Seleccionar todo

Sub borrarboton(oEvent)

dim oButton as object, oButton_model as object 
dim oForm as object, oContext as object

oButton = oEvent.Source
oButton_model = oEvent.Source.getModel()
oForm = oButton_model.getParent()
oForm.removeByName(oButton_model.Name)

oContext = oButton.getContext()
oContext.removeControl(oButton)
oButton.dispose()

End Sub
Igual que el anterior, solo funciona perfecto.
Con esto quise unir el funcionamiento de los macros, con una idea que propuso Mauricio por aca, que es esta:

Código: Seleccionar todo

Sub mismacros
   call InsertartImagen
   call borrarboton
End Sub
El tema es que cuando pongo las dos macros a funcionar, primero insertar imagen y luego borrar boton, el borrar boton da el siguiente error:
Error de ejecucion basic: el argumento no es opcional.
y marca este renglon de borrar boton
oButton = oEvent.Source
Espero me puedan ayudar, no soy uy ducho con esto de los macros.
Saludos
Santiago
Última edición por mauricio el Mié Nov 22, 2017 4:47 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
LibreOffice 6.3.2.2, Win7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Ejecutar dos macros en un solo boton

Mensaje por RMG »

Hola,

Creo que el error se produce por que Event.Source lo produce el evento del mismo botón, por lo que si no ejecutas la macro desde este mismo, es cuando da el error.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
sancor
Mensajes: 34
Registrado: Lun Mar 23, 2015 3:22 pm

Re: Ejecutar dos macros en un solo boton

Mensaje por sancor »

Esta claro que viene por ese lado, por lo que comente anteriormente. Solo funciona, acompañado no funciona. El tema es tratar de hacerlo funcionar en conjunto.
saludos
Santiago
LibreOffice 6.3.2.2, Win7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Ejecutar dos macros en un solo boton

Mensaje por mauricio »

Lo que falta es ver a que eventos tienes asignadas las macros... asegurate de que todos sean al mismo evento que usas en la macro borrarboton, entonces, asigna la tercera, la que junta las dos al mismo evento y al mismo boton e intenta con:

Código: Seleccionar todo

Sub mismacros(event)
   call InsertartImagen(event)
   call borrarboton(event)
End Sub
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
sancor
Mensajes: 34
Registrado: Lun Mar 23, 2015 3:22 pm

Re: Ejecutar dos macros en un solo boton

Mensaje por sancor »

Mauricio, muchas gracias por responder. Funciono perfecto.

Saludos
Santiago
LibreOffice 6.3.2.2, Win7
Responder