Alternar color en celdas con un Clik del mouse

12/03/2006 - 11:15 por Pablo Fdez. | Informe spam
Necesito alternar el color de fondo de cada celda del rango B1:K100 ( un
Click pone rojo y otro Click pone blanco). Posteriormente sumar en el rango
A1:A100 el nº de celdas en rojo de cada fila.
He probado a crear macros y posteriormente editarlas para modificarlas pero
no logro avanzar. ¿Algún consejo o código VBA para lograrlo?
Pablo

Preguntas similare

Leer las respuestas

#1 luka
12/03/2006 - 17:43 | Informe spam
Hola Pablo
Mira a ver si esto te sirve aunque no las tengo todas conmigo, ya que lo
que hace al mismo tiempo que colorea la celda es ponerle un 1 del mismo
color para que luego en las filas de la columna A pongas la fórmula
=suma(B1:K1) desde la fila 1 a la 100.
Si ya tienes datos, por lo menos puedes utilizar la parte del color
interior de la celda quitando las tres instrucciones que sobran

Ya me dirás
Saludos
Javier B.
==
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B1:K100")) Is Nothing Then
If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 3
Target.Font.ColorIndex = 3 'pone el color a la fuente
Target = 1 ' pone un 1 en la celda
Else
Target.Interior.ColorIndex = xlNone
Target = vbNullString 'elimina el 1 de la celda
End If
End If
End Sub
=

Pablo Fdez. escribió:
Necesito alternar el color de fondo de cada celda del rango B1:K100 ( un
Click pone rojo y otro Click pone blanco). Posteriormente sumar en el rango
A1:A100 el nº de celdas en rojo de cada fila.
He probado a crear macros y posteriormente editarlas para modificarlas pero
no logro avanzar. ¿Algún consejo o código VBA para lograrlo?
Pablo

Respuesta Responder a este mensaje
#2 Francisco GMAIL
12/03/2006 - 18:26 | Informe spam
Me parece qe te quedaste un poco corto de información.
Podrias indicar si la celda donde ubicas el click (pone rojo) seria la
misma del proximo click (pone blanco)
Ahora si slo sumas la de color requerido ¿cual es la utilidad de la misma ?

Saludos
Respuesta Responder a este mensaje
#3 Pablo Fdez.
13/03/2006 - 08:23 | Informe spam
Estoy ensayando vuestro código con varios ( muchos ) rangos discontinuos.
Empleo parte del codigo de Francisco y el resto de luka. En principio
funciona todo (algo lento por tanto calculo).Las celdas que alternan el color
siempre son las mismas (una vez rojo, otra vez blanco) y el contaje se
refiere a las celdas rojas.Si tengo mas dudas os comento. Gracias a ambos.

Saludos
Pablo

"luka" wrote:

Hola Pablo
Mira a ver si esto te sirve aunque no las tengo todas conmigo, ya que lo
que hace al mismo tiempo que colorea la celda es ponerle un 1 del mismo
color para que luego en las filas de la columna A pongas la fórmula
=suma(B1:K1) desde la fila 1 a la 100.
Si ya tienes datos, por lo menos puedes utilizar la parte del color
interior de la celda quitando las tres instrucciones que sobran

Ya me dirás
Saludos
Javier B.
==>
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B1:K100")) Is Nothing Then
If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 3
Target.Font.ColorIndex = 3 'pone el color a la fuente
Target = 1 ' pone un 1 en la celda
Else
Target.Interior.ColorIndex = xlNone
Target = vbNullString 'elimina el 1 de la celda
End If
End If
End Sub
=>

Pablo Fdez. escribió:
> Necesito alternar el color de fondo de cada celda del rango B1:K100 ( un
> Click pone rojo y otro Click pone blanco). Posteriormente sumar en el rango
> A1:A100 el nº de celdas en rojo de cada fila.
> He probado a crear macros y posteriormente editarlas para modificarlas pero
> no logro avanzar. ¿Algún consejo o código VBA para lograrlo?
> Pablo
>

Respuesta Responder a este mensaje
#4 Pablo Fdez.
13/03/2006 - 11:04 | Informe spam
Hola Francisco.
Estoy empleando parte de ambos codigos, el codigo de luka me permite definir
varios rangos ("B2:M10, AB2:AM10, BB2:BM10, ETC),y el tuyo afecta a toda la
hoja, cosa que no deseo.
La suma se refiere a cada fila de cada rango especificado y a las celdas de
color rojo.
Trato de depurarlo y luego te comento
Gracias
Pablo

"Francisco GMAIL" wrote:

Prueba esta codigo para cambiar el color de la celda con un doble click, el detalle es que no me conserva las lineas de las celdas.
Despues paso el de la suma pero necesito que especifiques si influye si es por fila o columna o solo es una sola linea.
Saludos


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Selection.Interior
.Pattern = xlSolid
If .ColorIndex = 3 Then Selection.Interior.ColorIndex = xlNone Else .ColorIndex = 3
End With
'Estas lineas nos permiten no ver el refreso de pantalla y salvar el libro activo
'Application.ScreenUpdating = False
'ActiveWorkbook.Save
'Application.ScreenUpdating = True
End Sub

Respuesta Responder a este mensaje
#5 Francisco GMAIL
13/03/2006 - 19:11 | Informe spam
Me queda la duda de como deseas realizar la suma, deseas solo fila por fila
y totalizar en una celda o cada fila/columna del rango seleccionado en una
celda diferente de las otras.

Hasta ahora he intentado solo totalizar la suma dentro de todo el rango en
una celda pero me gustaria que me despejaras la duda.

Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida