La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno,
sono nuovo di questo forum e vi ringrazo anticipatamente per l'attenzione e la collaborazione.
Desidero porvi questo problema:
ho una tabella dove sono elencati per ogni singola cella uno o più nomi di persona.
Al momento sono riuscito, utilizzando la formattazione condizionale, ad attribuire un colore specifico a ogni singolo nome e un colore di sfondo a un nome in particolare. Quando però, come nelle celle della colonna D della tabella allegata, compaiono più nomi all'interno della singola cella, questi non prendono il colore che vorrei.
Come posso risolvere il problema?
Se potete darmi una spiegazione dettagliata ve ne sarei grato poiché le mie conoscenze di excel sono limitate.
Vi ringrazio.
Ciao,
se ho capito bene quel che chiedi, non puoi farlo con la formattazione condizionale.
Per colorare una parte di testo all'interno di una cella bisogna utilizzare il VBA.
Fai sapere se sei interessato (in tal caso allega un file che sia quanto più possibile uguale all'originale, strutturalmente parlando), nel frattempo la discussione viene spostata nella sezione Macro e VBA.
Ciao,
come prima cosa ti dovrai creare una "tabella di riferimento" (che poi potrai anche nascondere)
dove avrai la lista delle persone con i propri colori:
a mio parere ti conviene distinguere le persone solo per colore del font e non dello sfondo cella (come hai fatto per Laura ).
Il codice (nel modulo di classe del Foglio1) partirà non appena verrà modificata una cella nelle colonne da A a I.
Private Sub Worksheet_Change(ByVal Target As Range) Dim PeopleRng As Range Dim LRow As Long Dim OneCellTarget As Range Dim OneCellRng As Range Dim iText As Integer If Not Intersect(Target, Range("A:I")) Is Nothing Then Target.Font.ColorIndex = xlAutomatic LRow = Range("L1").End(xlDown).Row If LRow > 1 Then Set PeopleRng = Range("L2:L" & LRow) For Each OneCellTarget In Target For Each OneCellRng In PeopleRng iText = InStr(1, OneCellTarget.Value, OneCellRng.Value) If iText > 0 Then OneCellTarget.Characters(iText, Len(OneCellRng.Value)).Font.Color = OneCellRng.Font.Color End If Next OneCellRng Next OneCellTarget End If End If Set PeopleRng = Nothing Set OneCellTarget = Nothing Set OneCellRng = Nothing End Sub
Problema sistemato.
Grazie cromagno!
Problema sistemato.
Per segnare la discussione come risolta leggi qui:
https://excelacademy.it/supporto/regolamento-e-informazioni-utili/segnare-la-propria-discussione-come-risolta/#post-394