>----Messaggio originale----
>Da: [email protected]
>Data: 19/04/2012 17.57
>A: <[email protected]>
>Ogg: Re: [utenti] far agire il SE su un&#39;altra cella
>
>Il 18/04/2012 19:17, [email protected] ha scritto:
>> Posto di qua dato che in ML Libò l'argomento è fermo ma credo possa 
interessare
>> sia come soluzione che come eventuale stimolo :-)
>> 
>> Avevo postato questo:
>> %
>> Ci deve essere sicuramente una soluzione semplice ma proprio non mi 
viene...
>> E' possibile utilizzare un SE per riempire o una terza o una quarta cella?
>> In pratica, SBAGLIANDO la sintassi ma seguendo la logica mi occorrerebbe 
avere
>> una formula del tipo:
>> SE(A1>5; C1="XXXX";D1="XXXX") [leggendola: se a1 è maggiore di 5 allora 
metti 

----- cut -----

>> 
>Ciao,
>se decidi di abbandonare le formule (te lo consiglio!) puoi provare con le 
macro!
>Ti mando un esempio che utilizza un event listner.
>Vedi se fa al caso tuo:
>
>Attenzione alle righe di codice spezzate x motivi di spazio!
>
>Global oListener, oSheet, oCell
>
>Sub AddListenerA1
>       oSheet = ThisComponent.getSheets().getByName("Foglio1")
>       oCell = oSheet.getCellRangeByName("A1")
>       oListener = CreateUnoListener("OOO_",
>"com.sun.star.chart.XChartDataChangeEventListener")
>       oCell.addChartDataChangeEventListener(oListener)
>End Sub
>
>Sub OOO_chartDataChanged
>Dim aCellProtection As New com.sun.star.util.CellProtection
>       oCellToLock = oSheet.getCellRangeByName("F1") 'La cella da proteggere è 
> F1
>       If oCell.getValue() > 5 Then
>               oSheet.getCellRangeByName("C1").String = "XXXX"
>               aCellProtection.IsLocked = true
>               oCellToLock.CellProtection = aCellProtection
>       Else    
>               oSheet.getCellRangeByName("D1").String = "XXXX"
>       End If
>End Sub
>
>Sub RemoveListnerA1
>       oCell.removeChartDataChangeEventListener(oListener)
>End Sub
>
>Il funzionamento è semplice, esegui AddListnerA1 e poi prova a inserire
>un valore in A1.
>Se il valore inserito è maggiore di 5 scrive in C1 e blocca F1,
>altrimenti scrive in D1.
>Dovrebbe essere più o meno quello che ti serviva...
>
Mai impuntato sulle formule, tant'è che con le mie limitate capacità avevo già 
creato delle macro ad hoc molto semplici e le avevo associate a dei campi 
formattati :-) Le funzioni EventListener e CellProtection non le conoscevo ma 
ne ho capito a perfezione il funzionamento e ho già adattato il tutto agli 
scopi che mi servono: GRAZIE è esattamente quello che serviva anzi addirittura 
troppo dato che se scrive le X non serve la protezione e viceversa, ora posso 
permettermi il lusso di fare entrambe le cose :-)

Questo lavoro di preselezione delle scelte avviene nel foglio1 che è una sorta 
di maschera formulario per l'inserimento dati che vengono poi distribuiti nel 
foglio2 che è quello che va a stampa. Il foglio1 non ha aree di stampa ed il 
suo aspetto video è grigio, quindi formattare lo sfondo della cella non ha 
riscontro visivo immediato.
Quindi si, la soluzione prospettata di formattazione condizionata ha senso ed 
è corretta, non va bene nello specifico caso ma è solo colpa mia non aver dato 
tutte le informazioni del caso.

Comunque DAVVERO Grazie, siete preziosi come sempre, tutti!
Angelo



---------------------------------------------------------------------
Per cancellarsi: [email protected]
Per informazioni: http://www.openoffice.org/it/
Per avviare una nuova discussione: [email protected]
Archivi: http://mail-archives.apache.org/mod_mbox/incubator-ooo-utenti-it

Rispondere a