Condividi:        

espressioni vb di formattazione con la funzione SE

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

espressioni vb di formattazione con la funzione SE

Postdi lore68 » 08/09/08 15:59

mi ritengo un discreto user di excel ma stavolta devo confrontarmi con un "professional"

domanda: è possibile utilizzare all'interno della sintassi della funzione "SE" una espressione che agisca sulla formattazione di una cella, nello specifico che mi faccia colorare una cella di un colore se un certo valore è vero e di un altro colore se il valore è falso?
cioè =se(condizione=vero; ... il colore è verde; se(condizione=falso; .... il colore è rosso ... ))
ho provato a usare le espressioni vb ma non le riconosce...
any suggestions????
:?:
lore68
Newbie
 
Post: 3
Iscritto il: 08/09/08 15:51

Sponsor
 

Re: espressioni vb di formattazione con la funzione SE

Postdi Anthony47 » 08/09/08 16:12

Ciao lore68 e benvenuto nel forum.

Ma hai gia' provato con la formattazione condizionale? Menu /Formato /Formattazione condizionale; Condizione 1=La formula e'; come formula scrivi quella che ti restituisce VERO; premi Formato, tab Motivo, scegli il verde che ti piace, Ok, Ok.
Per completare il lavoro infine, formatterai la cella (Menu /Formato /Cella, tab Motivo) col rosso.

Puo' funzionare?
Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: espressioni vb di formattazione con la funzione SE

Postdi lore68 » 09/09/08 08:35

Anthony, grazie x il contributo
effettivamente quello che cercavo di fare con una espressione nidificata in una formula "SE" è proprio quello che permette di fare la formattazione condizionale....
il problema della FC è che ti da al massimo tre condizioni (x lo meno nella vers. di excel 2003 di cui ho la licenza) mentre io ne devo considerare 5 o 6 e la cella a cui volevo applicare la formattazione non è la stessa che contiene le condizioni da considerare.
grazie ugualm. Lorenz
lore68
Newbie
 
Post: 3
Iscritto il: 08/09/08 15:51

Re: espressioni vb di formattazione con la funzione SE

Postdi Anthony47 » 09/09/08 11:21

Allora potresti lavorare con una macro di tipo Worksheet_Change, all' interno della quale verifichi le condizioni e applichi il colore usando "Interior.ColorIndex"

Se serve aiuto per il codice della macro, siamo qua.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: espressioni vb di formattazione con la funzione SE

Postdi lore68 » 11/09/08 10:52

dunque quindi praticamente non metto un'espressione all'interno della cella ma scrivo direttamente una macro dentro un modulo?
puoi postarmi se ce l'hai facile un text di esempio?
lore68
Newbie
 
Post: 3
Iscritto il: 08/09/08 15:51

Re: espressioni vb di formattazione con la funzione SE

Postdi Anthony47 » 11/09/08 14:36

Ad esempio questa:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
MioR = "B1:C10"  '<<< Adatta al tuo caso
'
If Intersect(Target, Range(MioR)) Is Nothing Then Exit Sub
With Target
Select Case .Value
Case Is <= 0
.Interior.ColorIndex = xlNone
Case Is > 100
.Interior.ColorIndex = 35    'verde chiaro
Case Is > 50
.Interior.ColorIndex = 43   'verde limone
Case Is > 30
.Interior.ColorIndex = 4    ' altro verde
Case Is > 10
.Interior.ColorIndex = 34  'turchese
Case Else
.Interior.ColorIndex = xlNone
End Select
End With
End Sub

Lavoora sul range MioR di dimensione dichiarata e applica alla cella modificata, se appartiene a quel range, un colore che dipende dal valore della cella.
Se le celle non vengono direttamente modificate, ma lo sono per formule inserite, allora bisogna modificare la macro, inserendo le istruzioni Select case/End select in un ciclo For Each Cell /Next cell:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
MioR = "B1:C10"  '<<< Adatta al tuo caso
'
If Intersect(Target, Range(MioR)) Is Nothing Then Exit Sub
For each Cella in Range(MioR)
With Cella
Select Case .Value
Case Is <= 0
'. . . .
'. . . . istruzioni come sopra
'. . . .
End Select
End With
Next Cella
End Sub

Va inserita nel "modulo di codice" del foglio su cui giaciono i dati: tasto dx sul tab col nome foglio, scegli Visualizza codice; ti si apre il vba editor; copia la macro e incollala nel frame di dx

Ovviamente dovrai inserire le istruzioni che servono a rappresentare le condizioni che vuoi gestire.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "espressioni vb di formattazione con la funzione SE":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti