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
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
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
[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
*****************************
Agganciala agli eventi del foglio:
Change, SelectionChange, Calculate
--
----------------------------
Mauro Gamberini