Excel colorare rigo cliccando su una cella

Anonimo
2024-10-05T10:11:37+00:00

Buongiorno

Ho il seguente codice :

Option Explicit


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Cells.Interior.ColorIndex = xlNone

Target.EntireRow.Interior.ColorIndex = 40

End Sub

Funzionerebbe bene su un foglio pulito , purtroppo siccome lo vorrei usare su un foglio che ha gia tante formattazioni di colori , come potrei adattare questo codice in modo tale da non toccare la formattazione gia' esistente ?

Grazie.

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
2024-10-05T17:18:57+00:00

A mio parere la soluzione meno complessa è la seguente.

Selezioni l'intervallo/i di celle per le quali desideri che quando la selezioni assuma un determinato sfondo (diverso da quelli già presenti "manualmente" o a seguito di formattazioni condizionali), assegni una nuova regola in base alla formula

=E(RIF.RIGA()=CELLA("RIGA");RIF.COLONNA()=CELLA("COL"))

Fai in modo che questa regola sia sempre la prima anche per gli intervalli dove sono presenti altre regole (dovrebbe avvenire automaticamente se se tu dovessi aggiungere ulteriori regole ad un intervallo di celle dovresti assicurarti di spostare in prima posizione questa.

Poi con l'evento "SelectionChange" gestisci l'aggiornamento della formula in modo che si evidenzi del colore stabilito per questa regola:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Application.CutCopyMode = False Then

  ActiveCell.Calculate 

Else

  Application.ScreenUpdating = True 

End If

End Sub

Ho impostato il ricalcolo della singola cella selezionata a meno che tu non stia eseguendo un copia incolla, nel qual caso viene aggiornato l'intero schermo.

In teoria, a fronte di tante formule, dovrebbe aversi un minor "sfarfallio" e ritardo.

La risposta è stata utile?

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

24 risposte aggiuntive

Ordina per: Più utili
  1. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-10-05T14:39:50+00:00

    ciao

    usa questa

    Option Explicit 
    
       Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    
          Cells.Borders.ColorIndex = xlNone 
    
        Target.EntireRow.BorderAround ColorIndex:=0, Weight:=xlMedium 
    
    End Sub 
    

    ti borda la riga

    scegli il colore sostituendo lo 0 con il colore che vuoi

    se non si fa come fare si inventa qualcosa

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-10-05T11:12:46+00:00

    Se faccio la formattazione condizionale a tutto il foglio , forse va detto alla macro che cliccando deve prevalere sulla formattazione condizionale e poi cliccando altrove , al posto di Cells.Interior.ColorIndex = xlNone , di tornare come era prima .

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-10-05T10:31:43+00:00

    ciao

    se hai una formattazione condizionale

    questa prevale sulla macro perciò colori solo le celle senza formattazione

    se colori a mano la vecchia formattazione viene cancellata

    quale dei due casi hai nei vari fogli

    Ciao

    in effetti é come dici tu , siccome ho tutte e due le opzioni da te descritte , quando clicco , quella fatta a mano si elimina , a questo punto mi convierrebbe forse farla tutta condizionata e modificare la macro ? perché sono comunque obbligato a tenere la parte condizionata .

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-10-05T10:21:27+00:00

    ciao

    se hai una formattazione condizionale

    questa prevale sulla macro perciò colori solo le celle senza formattazione

    se colori a mano la vecchia formattazione viene cancellata

    quale dei due casi hai nei vari fogli

    La risposta è stata utile?

    0 commenti Nessun commento