Clay vuole sapere se esiste un modo in cui, quando seleziona una cella specifica, Excel renderà automaticamente in grassetto il contenuto di una cella diversa. Ad esempio, se seleziona la cella K5 vorrebbe che tutto ciò che si trova nella cella C5 fosse visualizzato in grassetto; quando lascia la cella K5 (per passare a una cella diversa), la cella C5 dovrebbe tornare a come era prima che la selezione di K5 la rendesse in grassetto.

Nel trovare soluzioni, potresti pensare di poter utilizzare la formattazione condizionale per applicare la formattazione alla cella C5. Teoricamente, questo dovrebbe essere facile da fare; tutto quello che devi fare è creare una regola di formattazione condizionale basata sulla seguente formula:

=CELL("address")="$K$5"

Poiché la funzione CELLA, come utilizzata qui, restituisce l’indirizzo di qualsiasi cella selezionata, ogni volta che viene selezionata la cella K5, viene applicata la formattazione nella regola (in questo caso, impostando la cella in grassetto). Il problema con questo approccio, tuttavia, è che non funziona bene nella pratica.

Il motivo è perché la funzione CELL viene valutata solo quando il foglio di lavoro viene ricalcolato. Se selezioni solo la cella K5, il foglio di lavoro non viene ricalcolato, quindi la formula non si risolve in True e il formato condizionale non viene applicato. L’unico modo per farlo funzionare è selezionare la cella K5, quindi premere F9 per ricalcolare il foglio di lavoro, quindi la cella C5 verrà visualizzata in grassetto.

Il modo migliore per eseguire la formattazione è utilizzare una macro, in particolare una legata all’evento SelectionChange per il foglio di lavoro. Questo evento si attiva ogni volta che la cella selezionata viene modificata. La seguente macro verifica se la cella K5 è selezionata. Se lo è, la cella C5 è in grassetto; se non lo è, la cella C5 è “non piegata”.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address(False, False) = "K5" Then         Range("C5").Font.Bold = True     Else         Range("C5").Font.Bold = False     End If   End Sub

Ricorda che questa macro viene aggiunta al codice del foglio a cui si applica: fai clic con il pulsante destro del mouse sulla scheda del foglio di lavoro e scegli Visualizza codice. È qui che dovrebbe essere collocata la macro. Poiché la macro viene eseguita ogni volta che si modifica ciò che è selezionato nel foglio di lavoro, lo “stato in grassetto” della cella C5 viene aggiornato continuamente.

Notare che la macro attiva in modo efficace la proprietà Grassetto della cella.

Pertanto, se selezioni una cella diversa da K5, tutto ciò che si trova nella cella C5 non sarà in grassetto. Questo non si applica, ovviamente, se hai qualche altra regola di formattazione condizionale definita per la cella C5 che la farebbe apparire in grassetto. In tal caso, il formato condizionale ha la precedenza su tutto ciò che potrebbe fare questa particolare macro.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13178) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.