Macro y formato condicional en CALC

Marko -  
 Marko -
Hola,
Tengo un archivo con una macro en Calc que no es de mi autoría. Esta macro permite, al hacer clic en ella, introducir (según el botón) caracteres en celdas seleccionadas y colorarlas a través de un formato condicional.
Esta macro está insertada en un calendario que me permite realizar una previsión del planning.
El problema es que no conozco el lenguaje Basic y, por lo tanto, no entiendo prácticamente nada de la macro que recuperé de Internet (de ahí muchas columnas ocultas). Además, había logrado crear un botón de CANCELAR que me permitía deshacer la última acción realizada.
Estoy perdido y por más que intento buscar soluciones en Internet, solo consigo perderme aún más. Por lo tanto, les pido ayuda. Puedo proporcionar el archivo a pedido si lo desean.
¡Gracias de antemano!

Configuración: Macintosh / Safari 13.1

6 respuestas

  1. yclik Mensajes publicados 3875 Fecha de registro   Estado Miembro Última intervención   1 609
     
    Hola

    otra propuesta con un botón de borrar en lugar de "cancelar"
    formato condicional solo en la 1ª semana de enero

    Inspirado aquí
    1
  2. yclik Mensajes publicados 3875 Fecha de registro   Estado Miembro Última intervención   1 609
     
    Hola
    Un ejemplo de un archivo despersonalizado debería ser subido a Cjoint para obtener las mejores respuestas posibles.
    Cómo subir a Cjoint.fr
    0
  3. Marko
     
    Désolé, je ne peux pas accéder aux liens ou fichiers externes. Veuillez fournir le texte à traduire ici.
    0
  4. yclik Mensajes publicados 3875 Fecha de registro   Estado Miembro Última intervención   1 609
     
    Buenas noches

    la macro funciona, la última línea del código
    oCell.string = label 

    recupera el nombre del botón
    para verlo:
    visualización > barra de herramientas > control de formulario
    icono boceto (escuadra)
    clic derecho sobre el botón > propiedades



    para el formato condicional
    0
    1. Marko
       
      OK, lo probaré tan pronto como pueda. ¡Muchas gracias! Cerraré el tema si todo está bien y con un gran agradecimiento.
      0
  5. Marko
     
    Efectivamente tienes razón, ni siquiera podía entenderlo, pero con tu ayuda y una búsqueda en Google pude descifrarlo.
    Quedan dos problemas, el primero es que cuando selecciono varias celdas no funciona. Debo hacerlo celda por celda, lo que es bastante tedioso. ¿Existe una variante que lo permita?
    Segundo problema: tengo líneas de comando que permiten la anulación de acciones anteriores:

    Function MajColor(oCell, sBtn As String, oDescriptor) As String
    Dim aRet() As String, aCell() As String, sCell As String, sRet As String
    Dim oSheetData As Object, oCellData As Object, oFound
    oSheetData = thisComponent.Sheets.getByName("Donnees")

    With oCell.CellAddress
    IF .Column < 6 OR .Column > 400 OR .Row < 4 OR .row > 205 Then
    aRet = split(oCell.AbsoluteName,".$")
    MajColor = aRet(1) : Exit Function
    End IF
    End With

    IF sBtn ="ANNUL" Then
    oCell.CellBackColor = -1
    oCell.CharColor = -1
    oCell.String = ""
    Else
    oFound = oSheetData.findFirst(oDescriptor)
    IF Not IsNull(oFound) Then
    aCell = split(oFound.AbsoluteName, ".$A$")
    sCell = "$B$" & aCell(1)
    oCellData = oSheetData.getCellRangeByName(sCell)
    oCell.CellBackColor = oCellData.CellBackColor
    oCell.CharColor = oCellData.CharColor
    oCell.String = oCellData.String
    End If
    End If
    ' MajColor = ""
    End Function

    Sin embargo, cuando creo un botón y le asigno la macro, esto escribe "ANNUL" en la celda siguiendo la primera instrucción.

    Disculpa por la tardanza en mi respuesta, las compras, el perro, el niño, la limpieza... ;-)
    0
  6. Marko
     
    ¡Impresionante! ¡Muchas gracias! Bueno, sólo me queda encontrar "Básico para tontos" o un traductor.
    ¡Gracias a todos!
    0