Condividi tramite

Utilizzare set di icone con la formattazione condizionale per valori booleani

Anonimo
2013-05-09T13:52:25+00:00

Ciao a tutti!

Questo il mio problema:

Ho una serie di celle dove inserire i valori logici VERO e FALSO.

Mi piacerebbe che in queste celle, anziché i valori stessi fosse visualizzata una spunta verde nel caso sia inserito VERO o una croce rossa in caso di FALSO. Ho provato a farlo con la formattazione condizionale usando il set di icone ma sembra proprio che si aspetti dei valori numerici a tutti i costi.

Qualcuno ha qualche suggerimento da darmi?

Grazie in anticipo a tutti!

Ciao,

Alessandro

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-05-16T10:30:02+00:00

Ciao Alessandro,

hanno trattato l'argomento anche qui Customize Excel Conditional Formatting Icons senza tuttavia arrivare ad una conclusione diversa da quella di avere una colonna di appoggio su cui applicare la formattazione condizionale.

David

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

10 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-05-16T01:21:22+00:00

    Ciao David,

    grazie 1000 per il suggerimento!

    In realtà, come scrivevo anche ad Andrea, volevo evitare di utilizzare macro.

    Una curiosità: perché disabiliti gli eventi?

    Ciao e grazie ancora!

    Alessandro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-05-16T01:05:22+00:00

    Ciao Andrea,

    si, per regolato da convalida intendevo l'immissione forzata da una lista di valori (in questo caso VERO/FALSO). Della convalida mi piace il fatto che compaia la casella a discesa dove l'utente possa scegliere se attivare o meno l'opzione in un modulo. Potrebbe essere anche SI/NO o anche ON/OFF.

    Del valore booleano mi piace di poterlo utilizzare nelle formule direttamente, senza bisogno di altri operatori.

    Vorrei anche evitare di utilizzare macro, per evitare ad eventuali utenti non troppo "smart" eventuali problemi di attivazione delle stesse.

    Un alternativa a cui avevo pensato potrebbe essere quella di condizionare la formattazione di un'altra cella cioè inserendo ad VERO/FALSO ad es. in B1 e la formula =SE(B1;1;0) in C1 applicando la formattazione condizionale a quest'ultima. Questa potrebbe essere un buon compromesso ma la trovo poco "elegante" in quanto verrebbero visualizzati sia il VERO/FALSO sia la spunta. Certo potrei sempre fare in modo di nascondere il valore booleano, ma l'utente vedendo la spunta per attivare o disattivare l'opzione proverebbe ad agire sulla stessa.

    Posso sempre "illuminare" di verde le celle con VERO e di rosso quelle con FALSO in modo da rendere più evidenti le opzioni selezionate... è che la spunta mi piaceva tanto! :)

    Dato che mi suggerite tutti macro mi sa che è (purtroppo) l'unica soluzione possibile.

    Ciao e grazie 1000 per il suggerimento!

    Alessandro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-05-13T21:12:23+00:00

    Ciao Alessandro,

    occorre modificare "al volo" il valore restituito dalla convalida dati.

    Nell'esempio che segue ho ipotizzato che la convalida dati sia in colonna D dove esiste una formattazione condizionale con set di icone (facile scegliere quella che fa maggiormente al caso tuo).

    La routine è ovviamente da raffinare, è solo un esempio di come potresti risolvere.


    Private Sub Worksheet_Change(ByVal Target As Range)

        If Target.Column = 4 Then

            Application.EnableEvents = False

            Select Case UCase(Target.Value)

                Case "VERO"

                    Target.Value = 1

                Case "FALSO"

                    Target.Value = 0

                Case Else

                    '???

            End Select

            Application.EnableEvents = True

        End If

    End Sub


    Trovi un esempio qui: VeroFalso.xlsm

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-05-13T17:43:25+00:00

    Ciao Andrea,

    grazie per il suggerimento ma il vero/falso non è il risultato di una formula ma un'immissione regolata da convalida.

    E' che mi piacerebbe che l'utente dovesse selezionare tra i valori VERO/FALSO che mi sembrano più intuitivi di 0/1, ma allo stesso tempo mi piacerebbe che dopo la selezione l'utente si trovasse la spunta verde o la croce rossa anziché i valori booleani.

    Grazie per la risposta! Se ti viene in mente qualcos'altro qualsiasi suggerimento è bene accetto.

    Ciao,

    Alessandro

    Ciao Alessandro,

    regolata da convalidasignifica che non è possibile digitare altri valori oltre a vero/falso? 

    L'unica cosa che mi viene in mente è una formattazione condizionale al volo. Nell’esempio che ti allego ho ipotizzato che i valori VERO/FALSO digitati si trovino nella colonna “F” cioè 6, modifica nel codice il numero evidenziato in grassetto, adattandolo alle tue esigenze.

    Ci sentiamo,

    Andrea.

    Copia/incolla la routine seguente nel modulo worksheet (Foglio) in cui sono contenuti i dati che stai digitando.

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim lColonna As Long

      '---------- adatta questo valore alle tue esigenze

    **** lColonna = 6

      With Target

        If (.Cells.Count > 1) Then Exit Sub

        'If Not (Application.Intersect(Target, Range("A1:B10")) Is Nothing) Then

        If (.Column = lColonna) Then

          Application.EnableEvents = False

          .FormatConditions.Delete

          If (.Value = vbNullString) Then

            If (.Font.Name = "Webdings") Then .Font.Name = "Arial"

            .Font.Bold = False

          ElseIf (.Value = True) Then

            .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="a"

            .FormatConditions(1).Font.Color = -11489280

            .Font.Name = "Webdings"

            .Font.Bold = True

            .Value = "a"

          ElseIf (.Value = False) Then

            .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="r"

            .FormatConditions(1).Font.Color = -16776961

            .Font.Name = "Webdings"

            .Font.Bold = True

            .Value = "r"

          Else

            If (.Font.Name = "Webdings") Then .Font.Name = "Arial"

            .Font.Bold = False

          End If

          Application.EnableEvents = True

        End If

      End With

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento