Macro y formato condicional en CALC
Marko
-
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
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
Hola
otra propuesta con un botón de borrar en lugar de "cancelar"
formato condicional solo en la 1ª semana de enero
Inspirado aquí
otra propuesta con un botón de borrar en lugar de "cancelar"
formato condicional solo en la 1ª semana de enero
Inspirado aquí
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
Un ejemplo de un archivo despersonalizado debería ser subido a Cjoint para obtener las mejores respuestas posibles.
Cómo subir a Cjoint.fr
Désolé, je ne peux pas accéder aux liens ou fichiers externes. Veuillez fournir le texte à traduire ici.
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... ;-)
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... ;-)