PDA

Visualizza versione completa : [VBA Excel] Formattare risultato formula.


Emily
14-06-2008, 08.24.52
:wall: Avrei bisogno di trovare il modo per formattare il risultato di una formula contenuto in una cella. Cerco di spiegarmi meglio, allegando due righe di codice come esempio:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("E1").FormulaR1C1 = "=RC[-4]"
'Nella cella E1 viene immessa la formula "=A1", quindi qualsiasi cosa io scriva in A1, questa appare anche nella cella E1.

With Range("E1").Characters(Start:=1, Length:=2).Font
.ColorIndex = 5 'Scritta in Blu
End With
'Vorrei che i primi due caratteri della cella E1, che contiene la formula =A1, avesse i due caratteri iniziali di colore Blu.

End Sub

Ora se io nella cella A1 digito 123456 e premo Enter, nella cella E1 mi appare 123456 tutto di colore Blu e non solo i primi due numeri 12, dove sbaglio?

LoryOne
14-06-2008, 12.03.36
Prova ad immettere in una cella 12345 con formato cella Generale.
Poi prova ad evidenziare le prime tre cifre e ad assegnare ad esse il colore che vuoi
Se sposti il mouse su un'altra cella, il contenuto della cella precedente torna di colore uniforme.
Ora prova ad immettere '12345 ed a rifare i passi precedenti
Noterai che la selezione cambia colore e lo mantiene.
Questo significa che puoi specificare parte del dato di un certo colore solo se agisci su un campo formato testo.

Emily
15-06-2008, 11.46.35
OK, quindi quello che voglio fare io non è fattibile?
Se io imposto il formato TESTO nella cella "E1" che contiene la formula di cui voglio formattare il risultato, nella cella non mi appare più il risultato della formula ma mi appare la formula stessa.
Dalla prova che mi hai fatto fare, ho inoltre notato che se in una cella anzichè scrivere 12345, scrivo 123 45 (cioè inserendo uno spazio), in questa maniera è possibile cambiar colore anche ad un solo numero della scritta mantenendo la cella in formato GENERALE!!!

LoryOne
15-06-2008, 16.28.17
Si, ma mentre 12345 posso considerarlo un numero (sequenza di caratteri numerici) , 123 45 di sicuro non lo è a causa di quello spazio.

Emily
16-06-2008, 23.31.59
OK LoryOne, scusa la mia insistenza, ma quindi se anzichè scrivere una fila di numeri (12345) nella cella A1 scrivessi una parola (es. casa), anche in questo modo non riuscirei a formattare il risultato che mi appare nella cella E1 ottenendo quindi le lettere "ca" di color Blu?
Scusa ma non stò ancora capendo se quello che voglio fare è fattibile, e se si come fare.

LoryOne
17-06-2008, 08.25.57
Certo che puoi ottenere "ca" di colore blu perchè "casa" è un testo.
Se tu riuscissi ad ottenere il valore della formula e lo trasformassi in un testo, allora tutto funzionerebbe alla grande :)