Macro para cambiar color celda si valor = 0

21/12/2010 - 10:00 por perecandia | Informe spam
¡ Hola !
He creado una macro para cambiar el color de la celda si el valor es igual a 0. Pero para que se ejecute tengo que seleccionar primero las celdas que quiero que me compruebe.

He puesto un botón para que se ejecute. Y me gustaría que, sin tener que seleccionar las celdas, al pulsar el botón me comprobara las celdas (H11 hasta H100). Adjunto código:

Private Sub CommandButton1_Click()
Dim Celda As Range
For Each Celda In Selection
If Celda.Value Like "*0*" Then
Celda.Interior.ColorIndex = 3
ElseIf Celda.Value Like "*1*" Then
Celda.Interior.ColorIndex = 4
End If
Next
End Sub


Gracias de antemano.

Saludos

Preguntas similare

Leer las respuestas

#1 Emilio
21/12/2010 - 10:28 | Informe spam
¡Importante!: Colabora con el grupo. Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
Hola!

¿no has probado con el formato condicional?, sin lugar a dudas es mucho mas
eficiente que hacerlo por código.

Saludos a todos
Emilio [MS-MVP Access 2006/10]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"perecandia" escribió en el mensaje
news:
¡ Hola !
He creado una macro para cambiar el color de la celda si el valor es igual
a
0.
Pero para que se ejecute tengo que seleccionar primero las celdas que
quiero
que
me compruebe.

He puesto un botón para que se ejecute. Y me gustaría que, sin
tener que seleccionar las celdas, al pulsar el botón me comprobara las
celdas (H11 hasta H100). Adjunto código:

Private Sub CommandButton1_Click()
Dim Celda As Range
For Each Celda In Selection
If Celda.Value Like "*0*" Then
Celda.Interior.ColorIndex = 3
ElseIf Celda.Value Like "*1*" Then
Celda.Interior.ColorIndex = 4
End If
Next
End Sub


Gracias de antemano.

Saludos
Respuesta Responder a este mensaje
#2 perecandia
21/12/2010 - 11:56 | Informe spam
Emilio escribió el 21/12/2010 10:28 :
¡Importante!: Colabora con el grupo. Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
Hola!

¿no has probado con el formato condicional?, sin lugar a dudas es mucho
mas
eficiente que hacerlo por código.

Saludos a todos
Emilio [MS-MVP Access 2006/10]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"perecandia" escribió en el
mensaje
news:
¡ Hola !
He creado una macro para cambiar el color de la celda si el valor es igual
a
0.
Pero para que se ejecute tengo que seleccionar primero las celdas que
quiero
que
me compruebe.

He puesto un botón para que se ejecute. Y me gustaría que, sin
tener que seleccionar las celdas, al pulsar el botón me comprobara las
celdas (H11 hasta H100). Adjunto código:

Private Sub CommandButton1_Click()
Dim Celda As Range
For Each Celda In Selection
If Celda.Value Like "*0*" Then
Celda.Interior.ColorIndex = 3
ElseIf Celda.Value Like "*1*" Then
Celda.Interior.ColorIndex = 4
End If
Next
End Sub


Gracias de antemano.

Saludos




Hola, gracias por la respuesta.

A qué te refieres con formato convencional? Soy nuevo en esto de las macros...
Las celdas H11 to H100 son una fórmula que me calcula el número de stock que tengo en un almacén, y me gustaría que si el número es 0 se ponga la celda en rojo, si se puede hacer sin necesidad de utilizar una macro o un botón también estoy interesado en saberlo.

Gracias.
Respuesta Responder a este mensaje
#3 Jose Antonio Chocano
26/12/2010 - 12:43 | Informe spam
On 21 dic, 10:00, perecandia wrote:
Hola !
 He creado una macro para cambiar el color de la celda si el valor es igual a
0.
 Pero para que se ejecute tengo que seleccionar primero las celdas que quiero
que
 me compruebe.

 He puesto un bot n para que se ejecute. Y me gustar a que, sin
 tener que seleccionar las celdas, al pulsar el bot n me comprobara las
 celdas (H11 hasta H100). Adjunto c digo:



Hola,

Coincido en que el formato condicional es más apropiado para un caso
como este, pero no obstante, tu código funciona si en las condiciones
del if usa el operador = con el 0 y con el 1

No uses el like, ni los comodines, ni entrecomilles el valor.

Saludos.


 Private Sub CommandButton1_Click()
 Dim Celda As Range
 For Each Celda In Selection
 If Celda.Value Like "*0*" Then
 Celda.Interior.ColorIndex = 3
 ElseIf Celda.Value Like "*1*" Then
 Celda.Interior.ColorIndex = 4
 End If
 Next
 End Sub

 Gracias de antemano.

 Saludos
Respuesta Responder a este mensaje
#4 thiele
10/07/2013 - 21:34 | Informe spam
perecandia escribió el 21/12/2010 10:00 :
¡ Hola !
He creado una macro para cambiar el color de la celda si el valor es igual a 0.
Pero para que se ejecute tengo que seleccionar primero las celdas que quiero
que me compruebe.

He puesto un botón para que se ejecute. Y me gustaría que, sin
tener que seleccionar las celdas, al pulsar el botón me comprobara las
celdas (H11 hasta H100). Adjunto código:

Private Sub CommandButton1_Click()
Dim Celda As Range
For Each Celda In Selection
If Celda.Value Like "*0*" Then
Celda.Interior.ColorIndex = 3
ElseIf Celda.Value Like "*1*" Then
Celda.Interior.ColorIndex = 4
End If
Next
End Sub


Gracias de antemano.

Saludos


Coincido con los demás, para tu inquietud lo mejor es el formato condicional, para los que son nuevos en esto, el formato condicional lo encuentra en formato==> formato condicional, luego se despliega una ventana en la cual te muestra una condición, a la cual le puedes ir agregando más condiciones, en esta condición como se busca cambiar el color de la celda (también se puede el color de la fuente) se escogerá "Valor de la celda" ==> a continuación escoges la prueba lógica por ejemplo "mayor que" ==> y en la siguiente completas la prueba lógica ej: "0" , y cuando la condición sea verdadera se ejecutará el formato seleccionado en "formato..." (Aquí modificas según tus necesidades el color, estilo, de fuente, color de celda, etc.) y para continuar con mas condiciones basta con que le des clic en "agregar" y continuas nuevamente con los pasos anteriores, y para poder hacer efecto este formato condicional, debes seleccionar el rango de celdas que quieres que entren en este criterio.

Espero haberme explayado de buena forma cualquier duda no dudes en consultar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida