Domanda.

nome=Francesco
cognome=Longo
versione=97
conosco3=buono
vba=SI
email=fs.longo@libero.it
chra=392
problema= Ho scritto delle funzioni in VBA che vengono richiamate nelle varie celle con =FUNZIONE(parametri) ed il risultato viene correttamente scritto nella cella stessa. Non sono però riuscito a modificare altre celle. Per esempio vorrei che la cella B3 che contiene un numero scritto da una persona, e quindi non una formula, cambi font o colore in funzione del valore contenuto nella cella A3. Avevo pensato di scrivere nella cella C3, da tenere nascosta, il richiamo ad una funzione VBA che faccia tale lavoro.
Si può fare?
Grazie
Francesco
 

Risposta.

salve Francesco, non occorre una funzione specifica, anche se la puoi usare, comunque il tuo problema non puoi risolverlo come pensi; sul foglio è la cella dove inserisci la funzione o la formula che ti fornisce il risultato della formula o funzione, non puoi inserire in una cella una funzione che agisca su un'altra cella. Ed è questo quello che chiedi. Quindi puoi usare il vba, ma devi sfruttare, visto il risutato che vuoi ottenere, l'evento Change del Worksheet, che si verifica ad ogni cambiamento in qualsiasi cella. E nell'evento, inserire le opportune istruzioni condizionali, per esempio:

Private Sub Worksheet_Change(ByVal Target As Range)
If [A3].Value >10 Then
[B3].Font.ColorIndex = 3
Else
[B3].Font.ColorIndex = 1
End If
End Sub


l'istruzione dice: se il valore della cella A3 è maggiore di 10 (o qualunque altra soluzione di confronto), allora mi colori di rosso il carattere del valore che è in B3, altrimenti di nero. Ed ogni volta che verrà variato (cambiato) il valore in A3, scatta l'istruzione.
saluti, ennius