Ordinare per per colore sfondo cella

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Sciacallo10
Messaggi: 5
Iscritto il: lunedì 9 luglio 2018, 11:06

Ordinare per per colore sfondo cella

Messaggio da Sciacallo10 »

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.
Apache OpenOffice 4.1.2 Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Ordinare per per colore sfondo cella

Messaggio da patel »

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
Sciacallo10
Messaggi: 5
Iscritto il: lunedì 9 luglio 2018, 11:06

Re: Ordinare per per colore sfondo cella

Messaggio da Sciacallo10 »

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.
Allegati
file esempio.ods
(8.58 KiB) Scaricato 211 volte
Apache OpenOffice 4.1.2 Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Ordinare per per colore sfondo cella

Messaggio da patel »

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
Sciacallo10
Messaggi: 5
Iscritto il: lunedì 9 luglio 2018, 11:06

Re: Ordinare per per colore sfondo cella

Messaggio da Sciacallo10 »

Non ho idea di cosa sia
Apache OpenOffice 4.1.2 Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Ordinare per per colore sfondo cella

Messaggio da patel »

http://www.plio.it/sites/default/files/ ... _Macro.pdf

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
Rispondi