Buongiorno, sono nuovo nel forum.
Forse chiedo un banalità, ma vorrei ordinare una colonna impostando come criterio il colore delle celle e l'ordine alfabetico.
In alternativa se fosse possibile aggiungere un filtro sempre per colore fondo delle celle.
Vi ringrazio anticipatamente.
Ordinare per per colore sfondo cella
-
- Messaggi: 5
- Iscritto il: lunedì 9 luglio 2018, 11:06
Ordinare per per colore sfondo cella
Apache OpenOffice 4.1.2 Windows 7
Re: Ordinare per per colore sfondo cella
non è banale e non ti sei spiegato bene, allega un file di esempio con la situazione di partenza ed il risultato richiesto
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 5
- Iscritto il: lunedì 9 luglio 2018, 11:06
Re: Ordinare per per colore sfondo cella
Ho allegato il file esempio, la mia situazione di partenza è quella rappresentata dalla colonna A.
Avrei bisogno di ordinare la colonna A come la colonna B, o con un filtro o non so con una funzione che ordini selezionando lo sfondo della cella.
Avrei bisogno di ordinare la colonna A come la colonna B, o con un filtro o non so con una funzione che ordini selezionando lo sfondo della cella.
- Allegati
-
- file esempio.ods
- (8.58 KiB) Scaricato 211 volte
Apache OpenOffice 4.1.2 Windows 7
Re: Ordinare per per colore sfondo cella
occorre una macro, sei in grado di gestirla ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 5
- Iscritto il: lunedì 9 luglio 2018, 11:06
Re: Ordinare per per colore sfondo cella
http://www.plio.it/sites/default/files/ ... _Macro.pdf
comunque se ti vuoi cimentare la macro è questa
comunque se ti vuoi cimentare la macro è questa
Codice: Seleziona tutto
Sub Ordina2
Doc=ThisComponent
Sh=Doc.Sheets(0)
LastRow = LastRowNumberinColumn(Sh, 0)
riga1 = 0
riga2 = 0
col=0
colore = Sh.getCellRangeByName("A2").CellBackColor
For i = 0 To LastRow
If Sh.getCellByPosition(col, i).CellBackColor = 16777062 Then
Sh.getCellByPosition(1, riga1).String = Sh.getCellByPosition(col, i).String
riga1 = riga1+1
else
Sh.getCellByPosition(2, riga2).String = Sh.getCellByPosition(col, i).String
riga2 = riga2+1
End If
Next
UR1 = LastRowNumberinColumn(Sh, 1)
UR2 = LastRowNumberinColumn(Sh, 2)
ordina(1, UR1)
ordina(2, UR2)
End Sub
Sub ordina(colonna, UR)
Dim oSortFields(0) As New com.sun.star.util.SortField
Dim oSortDesc(1) As New com.sun.star.beans.PropertyValue
oSheet = ThisComponent.Sheets(0)
oRange = oSheet.getCellRangeByPosition(colonna,0,colonna,UR) 'includere anche il titolo
oSortFields(0).Field = 0 'ordina la prima colonna del range, non del foglio, parte da 0
oSortFields(0).SortAscending = true 'false descending
REM Setup the sort descriptor.
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oSortDesc(1).Name = "ContainsHeader"
oSortDesc(1).value = false
oRange.Sort(oSortDesc())
End Sub
Function LastRowNumberinColumn(oSheet, numcol)
oCol = oSheet.getColumns().getByIndex(numcol)
rd = oCol.createReplaceDescriptor
rd.searchRegularExpression = true
rd.setSearchString(".")
find = oCol.FindAll(rd)
aray = Split(find.AbsoluteName,"$")
LastRowNumberinColumn = val(aray(ubound(Aray)))
end Function
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta