Cambiare Font/Stile di righe a seconda di condizioni

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
martyns88
Messaggi: 2
Iscritto il: martedì 14 marzo 2017, 16:24

Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da martyns88 »

Ciao,
spiego nel modo più semplice

ho una lista di oggetti su una colonna (mele, pere, banane), e per ogni frutto diverse informazioni (prezzo, luogo, data) nelle diverse celle adiacenti

Un'altra colonna, affiancata ai frutti, con scritto: o da comprare, o comprata, o scaduta

Schema semplice: (ogni parola la sua cella)
dacomprare mela 2kg lunedì conad
comprata pera 1kg giovedì coop
scaduta banana 1kg venerdì coop

Vorrei che, se sulla A3 ci fosse scritto "scaduta", l'intera riga avesse un tipo di stile (tipo sfondo rosso)
Ma ovvio la stessa cosa, se invece poi cambiassi in "comprata", lo stile cambia con uno sfondo per esempio verde

Questa cosa per tutte le righe, che cambiasse lo stile a seconda di una condizione della prima cella della riga stessa (Ax)

Gia provato con Formattazione Condizionale, ma legge solo il risultato della stessa cella presa in considerazione (non riesco a cambiare lo stile della cella C3 a seconda della condizione di A3),
provato anche, sempre con formattazione condizionale, di scrivere una formula che prendesse in considerazione direttamente A3, ma prende poi FISSO sempre A3 anche per le altre righe (invece dovrebbe prendere in considerazione A1, A2, A3, ec..)

Qualcuno ha altre idee?

Ovviamente non posso cambiare manualmente in Formattazione Condizionale la formula per ogni riga, dato che ovviamente questo era solo un esempio ma mi serve per lavoro in un foglio enorme pieno di compra/vendite, e vorrei che cambiasse lo stile di un'intera riga (o parte) a seconda della condizione della prima cella della riga stessa

Grazie

Cordiali Saluti

M
OpenOffice 4.1.2 - Windows 8
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da patel »

allega un piccolo file di esempio con la formattazione condizionale che hai impostato tu
-------------------
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
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da lucky63 »

.
Piccolo esempio funzionante:
.
Schermata.png
Selezionando da ComBox lo status cella colonna A (al momento impostazioni su range A2:A10) varia automaticamente colorazione area utile della riga.
DA COMPRARE evidenza riga in giallo
SCADUTO evidenzia riga di rosso
Comprato rende trasparente
Cambiando ulteriormente lo status l'area d'interesse assume la nuova colorazione
Quindi rimangono in risalto/Evidenziati lo status DA COMPRARE e SCADUTO.

La macro è collegata all'evento foglio “Contenuto modificato”.
Si adatta automaticamente al numero di colonne contigue dell'intestazione (massima larghezza dati).
Celle colonna A necessitano validazione dati come impostata in cella A2
Stesse impostazioni già presenti nel Range A2:A10 per fare test
Per necessità maggiori copiare cella A2 (svuotata / Canc ) in colonna A in relazione esigenza lunghezza lista prodotti

Questa è la macro (opportunamente commentata):

Codice: Seleziona tutto

Sub EvidenziaRigaDati
 doc = thiscomponent ' il documento in uso
 Sh1 = Doc.Sheets(0) ' il primo foglio

 Rem Rileva NR Colonna e NR Riga della Posizione del cursore
 Colonna	= thisComponent.currentSelection.CellAddress.Column
 Riga	= thisComponent.currentSelection.CellAddress.Row
 
 Rem Rileva ultima COLONNA e ultima RIGA foglio 1
 c = Sh1.createCursor
 c.gotoEndOfUsedArea(false)
 UltimaColonna	= c.RangeAddress.EndColumn
 UltimaRiga		= c.RangeAddress.EndRow
 
 	Rem Verifica se cursore fuori da colonna A e Righe dati utile allora termina sub
 	If Colonna <> 0 or Riga = 0 or Riga > UltimaRiga then exit sub

 	Rem Verifica se diverso da SCADUTO o COMPRARE
 	Rem quindi Comprato o cella vuota a seguito cancellazione dato in cella
 	If Sh1.getCellByPosition(0,Riga).String <> "SCADUTO" OR "DA COMPRARE" then
 	Rem In caso di riscontro rendi il range privo di qualsiasi colore (Trasparente)
 	Sh1.getCellRangeByPosition(0,Riga,UltimaColonna,Riga).IsCellBackgroundTransparent = true
 	Rem lo stesso risultato si otteneva anche con
 	Rem Sh1.getCellRangeByPosition(0,Riga,UltimaColonna,Riga).CellBackColor = -1
 	end if

 	Rem Verifica se SCADUTO
 	If Sh1.getCellByPosition(0,Riga).String = "SCADUTO" then
 	REM Con riscontro positivo colora lo sfondo del RANGE per il colore sfondo impostato
 	Rem Link utile x codici colore RGB http://codicicolori.com/codici-colori-rgb 
 	Sh1.getCellRangeByPosition(0,Riga,UltimaColonna,Riga).CellBackColor = RGB (255,0,0) ' Colore ROSSO
 	end if
 
 	Rem Verifica se COMPRARE
 	If Sh1.getCellByPosition(0,Riga).String = "DA COMPRARE" then
 	REM Con riscontro positivo colora lo sfondo del RANGE per il colore sfondo impostato
 	Sh1.getCellRangeByPosition(0,Riga,UltimaColonna,Riga).CellBackColor =  RGB (255,255,0) ' Colore GIALLO
 	end if
 
 End sub
Allegati
Test - Macro evidenzia riga con colore giallo o rosso in relazione al contenuto della cella in colonna A.ods
(13.41 KiB) Scaricato 187 volte
Ultima modifica di lucky63 il sabato 25 marzo 2017, 17:08, modificato 1 volta in totale.
martyns88
Messaggi: 2
Iscritto il: martedì 14 marzo 2017, 16:24

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da martyns88 »

Grazie lucky63, esattamente quello che volevo.

Senza macro invece impossibile vero?

Grazie
OpenOffice 4.1.2 - Windows 8
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da lucky63 »

martyns88 ha scritto:Senza macro invece impossibile vero?
NO.
Si può fare tranquillamente ma tante più condizioni e celle a cui la applichi comporta un moltiplicarsi di formule che appesantisce progressivamente il file e la relativa reattività.
Allego esempio funzionante (con Libreoffice 5.2.6).
Impostazioni valide fino alla riga 10.
Test - Formattazione condizionata - Evidenzia riga con colore giallo o rosso in relazione al contenuto della cella in colonna A.png
Per esigenze maggiori selezionare per esempio il range A2:G2
Con la selezione celle attiva copiane il formato utilizzando icona del "Pennello" (Clona formattazione) della barra degli strumenti.
Posizionati in colonna A nel punto da cui vuoi replicare tale riga e tenendo premuto il tasto Sx del mouse trascina in basso per quante righe vuoi
(le celle di colonna A appaiono progressivamente selezionate)
Al momento in cui rilasci il pulsante del mouse verrà automaticamente replicata la riga originaria su tali righe per il relativo range di celle.
.
Allegati
Test - Formattazione condizionata - Evidenzia riga con colore giallo o rosso in relazione al contenuto della cella in colonna A.ods
(13.26 KiB) Scaricato 238 volte
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da Alelon »

domanda...le freccette accanto a : status, prodotto kg..... come si realizzano?
OpenOffice 4.1.13
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Cambiare Font/Stile di righe a seconda di condizioni

Messaggio da lucky63 »

.
Non ci si accoda in una discussione datata e con un quesito ben diverso rispetto all'argomento iniziale con cui è stato aperto.
Se non hai ancora risolto apri un quesito specifico (eventualmente inserendo un link a questo) ...
.
Rispondi