Condividi tramite

Cambio colore con pulsante cella formattata

Anonimo
2022-10-27T11:51:57+00:00

Ciao a tutti!

Avrei cortesemente bisogno di un aiuto. Ho ultimato uno scadenzario excel con una formattazione che segue appunto delle scadenze secondo delle date. Es: attività scaduta nel mese scorso e non effettuata diventa rossa, in termine diventa gialla e prossime attività rimangono bianche.

Ho pero bisogno di cambiare colore alla singola cella per cui registro un'attività effettuata e cliccando sul riempimento delle celle formattate non mi permette di cambiargli colore in modalità manuale.

L'idea è quella di selezionare la cella formattata con la data dell'attività, e una volta effettuata tale attività vorrei cambiargli il colore, che sia tramite bottone macro oppure direttamente in manuale, ma non riesco.

Non so se mi sono spiegato bene...

Grazie in anticipo per l'aiuto.

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
2022-11-02T12:59:24+00:00

Ciao Fabio,

Norman scusami, usando il file ho notato che in caso inserisca per errore una data in una determinata cella (che automaticamente seguirà le regole assegnate, colorandosi in base alla scadenza) e successivamente cancellando il contenuto cella eliminandone la data (inserendo ad esempio "-") , la stessa mantiene il colore di riempimento assegnato in automatico (es: rosso / giallo).

Non è possibile fare in modo che automaticamente, quando cancello la data in una cella, torna il riempimento bianco con scritte nere?

Credo sia questo il caso interessato dalla regola:

Case Else

.Interior.Color = xlNone

.Font.ColorIndex = xlAutomatic

Affrontando entrambe le considerazioni da te sollevate, sostituisci il codice precedente con la versione seguente:

'========>>

Option Explicit

'-------->>

Private Sub Worksheet_Calculate()

Dim Rng As Range, Rng2 As Range, rCell As Range 

On Error Resume Next 

Set Rng = Me.UsedRange.SpecialCells(xlCellTypeConstants)  ', 1) 

On Error GoTo 0 

If Not Rng Is Nothing Then 

    For Each rCell In Rng.Cells 

        With rCell 

            If IsDate(rCell.Value) Then 

                If .Interior.Color = RGB(255, 235, 156) Or .Interior.Color = RGB(255, 199, 206) Or .Interior.ColorIndex = xlNone Then 

                    Select Case True 

                        Case .Value >= Date - 15 And .Value <= Date 

                            .Interior.Color = RGB(255, 235, 156) 

                            .Font.Color = vbRed 

                        Case .Value < Date - 15 

                            .Interior.Color = RGB(255, 199, 206) 

                            .Font.Color = vbRed 

                        Case Else 

                            .Interior.Color = xlNone 

                            .Font.ColorIndex = xlAutomatic 

                    End Select 

                End If 

            ElseIf .Interior.Color = RGB(255, 235, 156) Or .Interior.Color = RGB(255, 199, 206) Then 

                .Interior.Color = xlNone 

                .Font.ColorIndex = xlAutomatic 

            End If 

        End With 

    Next rCell 

End If 

On Error Resume Next 

Set Rng2 = Me.UsedRange.SpecialCells(xlCellTypeBlanks) 

On Error GoTo 0 

If Not Rng2 Is Nothing Then 

    For Each rCell In Rng2.Cells 

        With rCell 

            If .Interior.Color = RGB(255, 235, 156) Or .Interior.Color = RGB(255, 199, 206) Then 

                .Interior.ColorIndex = xlNone 

                .Font.ColorIndex = xlAutomatic 

            End If 

        End With 

    Next rCell 

End If 

End Sub

'<<========

Le modifiche al mio codice sono evidenziate in verde.

In questo modo, tutti i valori di data verranno riempiti con il colore appropriato e qualsiasi data eliminata o sostituita con qualsiasi testo avrà il colore di riempimento rimosso e il colore del carattere ripristinato al nero.

Puoi scaricare iol mio file di prova Fabio20221102.xlsm

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

21 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2022-10-27T13:30:03+00:00

    Ciao,

    purtroppo non sono pratico del VBA e non saprei da dove partire.

    Creando la macro che elimini la formattazione, funzionerebbe solo se dopo aver eliminato la formattazione, cambio manualmente il colore della cella?

    Alternative per creare uno scadenzario che colori in automatico le date scadute ed in scadenza, tenendo però la possibilità di cambiare anche manualmente il colore esiste?

    Grazie tante per l'aiuto!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2022-10-27T13:10:43+00:00

    ciao

    ho idea che se non trovi il modo di segnalare su una cella il fine attività

    devi usare il VBA

    potremo fare una macro che al doppio click elimini la formattazione

    ma funzionerebbe solo se colorate a mano

    perciò ti consiglio di passare tutto al VBA

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2022-10-27T12:53:09+00:00

    Ciao,

    intendi che dovrei inserire accanto alle singole celle con la data dell'intervento, un'altra cella dove segnare la fine attività?

    Perchè essendo un prospetto con parecchie manutenzione dovrei cercare di farlo il più ridotto possibile, per quello l'idea era di cambiare direttamente il colore della stessa cella dove è inserita la data.

    In alternativa non è possibile realizzare una funzione per la quale, quando decido di attivarla in una cella, supera la formattazione condizionale e permette la modifica del colore senza cambiare il contenuto?

    Allego sotto uno screen del prospetto realizzato.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2022-10-27T11:58:52+00:00

    ciao

    se la cella è formattata tramite formattazione condizionale

    e rientra nei parametri

    non puoi cambiare nulla

    potresti usare un'ulteriore formattazione

    esempio

    se la fine attività

    la segnali in un'altra cella ...diciamo Z1

    =$Z1="FINE ATTIVITA"

    nessuna formattazione

    che andrà messa come prima opzione

    ma se non alleghi un esempio

    difficile dare una risposta precisa

    La risposta è stata utile?

    0 commenti Nessun commento