Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Formattazione Condizionale: Colorare una riga

30 views
Skip to first unread message

tan...@yahoo.it

unread,
Mar 13, 2006, 11:17:06 AM3/13/06
to
Ciao a tutti,
tramite macro vorrei impostare una Formattazione COndizionale per poter
colorare una riga in base al valore di una cella.

Il codice della macro è:

' Creo la formattazione condizionale
OUTSheet.Cells(rowN, 2).FormatConditions.Delete
OUTSheet.Cells(rowN, 2).FormatConditions.Add Type:=xlExpression,
Formula1:= _
"=IF(RC=""Y"",TRUE,FALSE)"
OUTSheet.Cells(rowN, 2).FormatConditions(1).Interior.ColorIndex = 4

'La copio sull'intera riga
OUTSheet.Cells(rowN, 2).Copy
OUTSheet.Range(OUTSheet.Cells(rowN, 2), OUTSheet.Cells(rowN,
numberCols)).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Il valore da controllare è nella colonna B

Facendo in questo modo, però mi colora solo gli elementi della colonna
B che hanno valore "Y", perchè nelle altre celle la formula di
controllo diventa:

=IF(C2=""Y"",TRUE,FALSE)
=IF(D2=""Y"",TRUE,FALSE)
=IF(E2=""Y"",TRUE,FALSE)
...

Volevo sapere se c'è un modo per fare la copia del formato su tutta la
riga, bloccando la cella di test (oppure un altro modo per risolvere il
mio problema)

Ho provato a mettere come formula "=IF(R$C=""Y"",TRUE,FALSE)", ma mi
dà errore :-(

Avete dei consigli?

Grazie mille,
Ciao,
Tanilo

Mauro Gamberini

unread,
Mar 13, 2006, 11:29:32 AM3/13/06
to
tramite macro vorrei impostare una Formattazione COndizionale per poter
colorare una riga in base al valore di una cella.

Il codice della macro è:

*******************************
[cut]

Non ho capito cosa vuoi fare.
Prova questo cambiando i riferimenti
con i tuoi:

Public Sub mmm()

Dim rng As Range
Dim c As Range

Set rng = Range("A1:A100")

For Each c In rng
If c.Value = "a" Then
Rows(c.Row).Interior.ColorIndex = 6
Else
Rows(c.Row).Interior.ColorIndex = xlNone
End If
Next

End Sub


--
----------------------------
Mauro Gamberini


Mauro Gamberini

unread,
Mar 13, 2006, 11:33:21 AM3/13/06
to
Dimenticato settare a Nothing rng.
Qui in Excel il problema è relativo,
ma resta sempre una *buona norma*.

Public Sub mmm()

Dim rng As Range
Dim c As Range

Set rng = Range("A1:A100")

For Each c In rng
If c.Value = "a" Then
Rows(c.Row).Interior.ColorIndex = 6
Else
Rows(c.Row).Interior.ColorIndex = xlNone
End If
Next

Set rng = Nothing

tan...@yahoo.it

unread,
Mar 13, 2006, 11:41:15 AM3/13/06
to

Mauro Gamberini ha scritto:

[CUT]


> Non ho capito cosa vuoi fare.

:-P sapevo di non essere stato chiaro :-P

> Prova questo cambiando i riferimenti
> con i tuoi:
>
> Public Sub mmm()
>
> Dim rng As Range
> Dim c As Range
>
> Set rng = Range("A1:A100")
>
> For Each c In rng
> If c.Value = "a" Then
> Rows(c.Row).Interior.ColorIndex = 6
> Else
> Rows(c.Row).Interior.ColorIndex = xlNone
> End If
> Next
>
> End Sub


Con questo codice, cambio il colore una volta per tutte.
Invece io vorrei fare che a seconda del valore di una cella (che può
cambiare 'dinamicamente'), l'intera riga cambi colore automaticamente.

Provo a fare un esempio (sicuramente il layout farà schifo :-P):

TEST | DATA | VALORE
N | 12/01/05 | 5
Y | 13/01/05 | 7
Y | 11/01/05 | 15

Le righe 2 e 3 dovrebbero essere colorate diversamente (ad esempio di
verde)

Vorrei che se modificassi a mano/tramite macro il valore di test della
seconda riga e lo impostassi ad N, tutta la riga automaticamente
cambiasse di colore, da verde a xlNone.

Pensavo di farlo con la formattazione condizionale, ma con il codice
che ho scritto prima, viene colorata di verde/xlNone solo la prima
cella.

Spero di essere stato più chiaro adesso :-)

Grazie,
Tanilo

Mauro Gamberini

unread,
Mar 13, 2006, 11:50:22 AM3/13/06
to
Con questo codice, cambio il colore una volta per tutte.
Invece io vorrei fare che a seconda del valore di una cella (che può
cambiare 'dinamicamente'), l'intera riga cambi colore automaticamente.

*****************************

Agganciala agli eventi del foglio:
Change, SelectionChange, Calculate

--
----------------------------
Mauro Gamberini


0 new messages