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

colorare una cella in funzione della condizione di un'altra cella

8,847 views
Skip to first unread message

leo

unread,
Jun 19, 2009, 4:18:21 AM6/19/09
to
ciao a tutti
non sono riuscito, malgrado questo argomento è già stato ampiamente
discusso, a risolvere questo piccolo problema.
Nella cella A1 ho un dato che deve essere colorato in rosso solo se la
nella cella B1 compare la scritta SI.
Ho provato con la formattazione condizionale inserendo la seguente
formula:
=$B$1="si"
e il sistema funziona.
Come posso copiare la stessa formattazione condizionale alle celle
A2:A200?
In pratica ogni cella in A deve confrontarsi con la relativa cella in
B e verificare la condizione.
grazie
leo

Ale

unread,
Jun 19, 2009, 4:25:36 AM6/19/09
to

Posizionati sulla cella A1, posiziona il mouse nel vertice in basso a
dx e ti comparità una croce, tasto sx fino alla riga che vuoi tu...in
questo modo quando b1 sarà "si", tutte queste celle si coloreranno.
Ciao
Ale

leo

unread,
Jun 19, 2009, 4:49:44 AM6/19/09
to

ciao ale,
spiego meglio:
Colonna A Colonna B
5 si
200 no
30 no
10 si
In pratica la cella A1 dovrebbe colorarsi in rosso perche in B1 ho SI
La cella A2 e A3 rimane bianca perchè in B2 ho NO
La cella A4 si dovrebbe colorare in rosso perchè B4 ho SI
ciao

Nur

unread,
Jun 19, 2009, 5:05:25 AM6/19/09
to
On 19 Giu, 10:49, leo <n.marzu...@gmail.com> wrote:

> spiego meglio:
> Colonna A        Colonna B
> 5                       si
> 200                    no
> 30                     no
> 10                     si
> In pratica la cella A1 dovrebbe colorarsi in rosso perche in B1 ho SI
> La cella A2 e A3  rimane bianca perchè in B2 ho NO
> La cella A4 si dovrebbe colorare in rosso perchè B4 ho SI

> ciao-

Ciao Leo
Seleziona il range A1:A200.
La formula per la fomattazione condizionale è:
=B1="SI"

(invece di $B$1)

Ciao, Nur

leo

unread,
Jun 19, 2009, 5:05:35 AM6/19/09
to

OK! fatto ho cambiato la formula in questo modo:
=B1="si"
Approfitto per chiedere il processo contrario:
come faccio (non visivamente!!) a sapere se una cella è colorata?


Colonna A Colonna B
5

200
30
10

Se A1 è in rosso in B1 dovrei scrivere SI
SeA2 è in rosso.........
grazie ale
ciao

leo

unread,
Jun 19, 2009, 5:52:36 AM6/19/09
to

ho risolto in questa maniera:
Sub verifica_colore()
Range("A1").Select
Selection.End(xlDown).Select
a = ActiveCell.Row
For i = 1 To a
ran = "b" & i
If Range(ran) = "SI" Then
Range("a" & i).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Else
Range("a" & i).Select
With Selection.Interior
Selection.Interior.ColorIndex = xlNone
End With
End If
Next i
Range("A1:A23").Copy
Range("J1:J23").Select
ActiveSheet.Paste
Range("G20").Select
Application.CutCopyMode = False
End Sub

Ale

unread,
Jun 19, 2009, 5:57:21 AM6/19/09
to
> ciao- Nascondi testo citato
>
> - Mostra testo citato -

Francamente la gestione dei colori è sempre un po' complicata. O vedi
questo vecchio post

http://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/8e595008a59712ac/d876b63c8a24b16f?hl=it&lnk=gst&q=somma+colori#d876b63c8a24b16f

o cmq sia, con lo stesso ragionamento per cui la cella A1 diventa
rossa fai scrivere nella cella B1 "SI".
Ciao
Ale

Nur

unread,
Jun 19, 2009, 10:58:07 AM6/19/09
to
On 19 Giu, 11:52, leo <n.marzu...@gmail.com> wrote:

> > OK! fatto ho cambiato la formula in questo modo:
> > =B1="si"
> > Approfitto per chiedere il processo contrario:

> > Se A1 è in rosso in B1 dovrei scrivere SI


> > SeA2 è in rosso.........
> > grazie ale
> > ciao
>
> ho risolto in questa maniera:
> Sub verifica_colore()

[...]


> If Range(ran) = "SI" Then
> Range("a" & i).Select
> With Selection.Interior
> .ColorIndex = 6
> .Pattern = xlSolid
> End With

[...]
> Next i
> End Sub

Ciao leo.
Cosa hai risolto con questa?
La prima tua domanda?
Perché se si tratta di scrivere "SI" affianco alle celle rosse, non
penso che possa aiutarti.
Se non sbaglio, Sub Verifica_colore() colora di giallo la cella in A
se in B c'è scritto "SI" (cioè fa quello che faceva la formattazione
condizionale).

Se vuoi l'opposto, cioè che venga scritto "SI" in B se A è colorata,
penso tu debba valutare qualche alternativa.

Prova così:
[ho tenuto 3 come colorindex (giallo) come avevi indicato tu qui
sopra, se vuoi il rosso, sostituisci il 6 con 3 dove ho indicato]

'-----------------------------------------------------------------------------------------
Public Sub ImpostaValori()
'qui sotto sostituisci (eventualmente) a quello che ho scritto io
' |il nome del foglio|,|la colonna 'colorata'|, |il
ColorIndex|
CheckColor ThisWorkbook.Worksheets("Foglio1"), "A", 6
End Sub

Public Sub CheckColor(MySh As Excel.Worksheet, MyCol As String, ColInd
As Long)
Dim c As Excel.Range
For Each c In MySh.Range(Cells(1, MyCol), Cells(Rows.Count, MyCol).End
(xlUp))
If c.Interior.ColorIndex = ColInd Then
c.Offset(0, 1).Value = "SI"
Else
End If
Next
End Sub
'----------------------------------------------------------------

Ciao, Nur

leo

unread,
Jun 19, 2009, 1:15:04 PM6/19/09
to

ciao Nur,
funziona perfettamente. Grazie!!

0 new messages