Hello João, On Tue, Jul 08, 2014 at 11:02:21AM -0300, "João Paulo R. Rezende" wrote: > Hello, > > I want to create a macro to remove or clear all condition formats in current > sheet. > > I had tried: > > myRange.ConditionalFormat.Clear() > myRange.ConditionalFormat.removeByIndex(index) > mySheet.ConditionalFormat.Clear() > > Already tried, > Dim oPropCondition As Object > ..... > oPropCondition = oRange.ConditionalFormat > oPropCondition.Clear() > oRange.setPropertyValue( "ConditionalFormat", oPropCondition) > > But nothing works, > > How can I do this?
Please read the Developer's Guide: https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Conditional_Formats The Note there says: After a conditional format is changed, it has to be reinserted into the property set of the cell or cell range. So your first code does not work; but the second one should, because it is setting the conditional format back in the range. The following code works fine: Sub Main Dim oRange oRange = ThisComponent.getSheets().getCellByPosition(2,9,0) Dim oCF oCF = oRange.ConditionalFormat If oCF.getCount() > 0 Then oCF.clear() REM https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Conditional_Formats REM After a conditional format is changed, it has to be reinserted into the property set of the cell or cell range. oRange.ConditionalFormat = oCF End If End Sub Change oRange to meet your need; if does not work, then it might be a bug; if so, please submit a bug report and attach a sample document in order to reproduce it. Regards -- Ariel Constenla-Haile La Plata, Argentina
signature.asc
Description: Digital signature