Funcion, si una celda es de un color... entonces me calculas

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
torificado
Mensajes: 1
Registrado: Sab Feb 25, 2017 7:34 pm

Funcion, si una celda es de un color... entonces me calculas

Mensaje por torificado »

hola buenas !!!! tengo una duda; necesito hacer uso de una funcion que me permita hacer lo siguiente:
Cuando modifique el color de la celda A1, me aparezca el valor true (1) si los colores de ambas celdas son iguales; Si los colores de ambas celdas son distintos (el color de A1 distinto de E6), me aparezca el valor de false (0); Esto me lo hace el siguiente codigo y hasta hay bien; el problema es que necesito que se compruebe y ejecute automaticamente. lo unico que me falta y que no quiero es que tenga que dar a las teclas shift+Ctrl+F9; el codigo funciona porque lo he probado, lo unico es que cada vez que cambio de color tengo que pulsar a esa combinacion de teclas para que actualice y vuelva a ejecturar la funcion para que vuelva a comprobar si se ha cambiado de color en las celdas E6 y A1; aunque la celda no tenga nada y este vacia, unicamente comprobar si ha cambiado de color, nada mas. lo que yo busco es una funcion o una linea de codigo que falta añadir para que me haga ese shift+Ctrl+F9, es decir para que me actualice(ejecute) la funcion y realice la comprobacion:
comprobacion bien cuando realice la accion de pinchar en la celda que quiero y le de ha cambiar de color, o bien una comprobacion constantemente.
He probado con bucles pero se queda como colgado, a lo mejor existe alguna funcion definida que permite que se compruebe esto todo el rato; asi cada vez que cambie de color la celda me dira si son del mismo color o no. NOTA: no soy ningun experto de hecho no tengo ni idea, el codigo de abajo lo he ido cogiendo y probando cosas que he ido encontrando por internet. Pero me falta ese trozo de codigo que me comprueba continuamente el cambio de color de las celdas.

El codigo es el siguiente:

Código: Seleccionar todo

Global dato As Integer
Function CELDAS( numero1, numero2, numero3  ) As Boolean
    Dim oCelda As Object
    Dim oCelda2 As Object
    dato = 2
    oCelda = ThisComponent.getSheets.getByName( numero1 ).getCellRangeByName( numero3 )
    oCelda2 = ThisComponent.getSheets.getByName( numero1 ).getCellRangeByName( numero2 )
         if oCelda.CellBackColor = oCelda2.CellBackColor then
              'MsgBox "Las celdas son del mismo color"
              CELDAS = 1
         else
              'MsgBox "Las celdas no son del mismo color"
              CELDAS = 0
         End If
End Function 
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Funcion, si una celda es de un color... entonces me calc

Mensaje por xiseme »

No soy yo muy partidario de calcular con colores. Prefiero (¡dónde va a parar!) calcular con números.
Si acaso al revés: aplicar un formato condicional (color incl.) según el valor (número) de tal o cual celda, del resultado de x-cálculos, de ... :mrgreen:

No obstante, por aquello de que «Para gustos, colores» :mrgreen: ... en el foro hay algunos temas sobre cómo forzar el recálculo automático en Calc:
éste es uno de ellos
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Responder