Haz tu Pregunta
0

Macro que no funciona desde un Botón

preguntado 2019-01-24 20:15:25 +0200

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

En un archivo de Calc una macro que copia contenidos de celdas a otra hoja funciona desde el editor de Macros pero cuando la ejecutas desde un botón en la hoja funciona mal y no copia el contenido.

El resto de macros aparentemente funcionan correctamente

Se trata de un ejemplo de factura que he adaptado: https://blog.open-office.es/calc/mode...

Por lo que he indagado puede tratarse de la versión del LO. Actualmente trabajo con la 6.1 en Mac. Pero no se que hay que modificar para que se corrija este fallo.

El problema es con el siguiente macro:

Sub EnviarDatos
'----------------------------------------------------------------------
  Dim document   As Object
  Dim dispatcher As Object

  document   = ThisComponent.CurrentController.Frame
  dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")

  Dim aSaltarA(0) As New com.sun.star.beans.PropertyValue
  aSaltarA(0).Name = "ToPoint"
  aSaltarA(0).Value = "DatosFactura"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

  dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

  aSaltarA(0).Value = "ResumenInsertarFila"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

  Dim aMover(1) As New com.sun.star.beans.PropertyValue
  aMover(0).Name = "By"
  aMover(0).Value = 1
  aMover(1).Name = "Sel"
  aMover(1).Value = False
  dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())

  Dim aPegadoEspecial(5) As New com.sun.star.beans.PropertyValue
  aPegadoEspecial(0).Name = "Flags"
  aPegadoEspecial(0).Value = "SVDN"
  aPegadoEspecial(1).Name = "FormulaCommand"
  aPegadoEspecial(1).Value = 0
  aPegadoEspecial(2).Name = "SkipEmptyCells"
  aPegadoEspecial(2).Value = False
  aPegadoEspecial(3).Name = "Transpose"
  aPegadoEspecial(3).Value = True
  aPegadoEspecial(4).Name = "AsLink"
  aPegadoEspecial(4).Value = False
  aPegadoEspecial(5).Name = "MoveMode"
  aPegadoEspecial(5).Value = 4

  dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, aPegadoEspecial())

  aMover(0).Value = 22
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, aMover())

  aMover(0).Value = 1
  dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, aMover())

  aMover(1).Value = True
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, aMover())

  dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

  aMover(1).Value = False
  dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, aMover())
  dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, aMover())

  aPegadoEspecial(0).Value = "A"
  aPegadoEspecial(3).Value = False
  dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, aPegadoEspecial())

  aSaltarA(0).Value = "ResumenInsertarFila"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())  

  aSaltarA(0).Value = "CodCliente"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

  MsgBox ("Datos enviados a la hoja Resumen", 192, "open-office.es")

End Sub
edit re-etiquetar marcar como ofensivo cerrar fusionar delete

1 Responder

Ordenar por » viejos nuevas más votado
0

respondido 2019-01-31 18:36:32 +0200

No utilice el botón, utilice imágenes o figura geométrica, ya he tenido este problema.

edit marcar como ofensivo delete enlace mas

Comments

Funciona perfectamente. Muchas gracias, curioso problema.

Imagen Gravatar de Gregorio Gregorio ( 2019-02-05 12:11:08 +0200 )edit
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2019-01-24 20:15:25 +0200

Visto: 51 veces

Ultima actualización: Jan 31