Inicio > Microsoft Excel > parmijo > Comparar columnas

Comparar columnas

Experto:
Usuario:
Fecha: 21/01/2009
Valoración: Categoría: Microsoft Excel
15/01/2009
a_dotor, usuario preguntando en Microsoft Excel
Usuario
Hola, buenos días
Tengo un problema con una macro en un documento de Excel que no consigo hacer funcionar.
Quiero colorear las celdas de la columna B en función de unas comparaciones entre columnas. Debe rastrear las filas de la 10 a la 30. La condición a imponer es que siempre que los valores de la columna K no aparezcan en negrita, se cumplan las siguientes sentencias:
Si los valores de la columna Q son menores que los de la columna K, entonces ColorIndex=33
Si los valores de la columna Q son menores que los de la columna K y los de la columna R son mayores que los de la B, entonces ColorIndex=45
Si los valores de la columna B son mayores o iguales a los de la K, entonces ColorIndex=3
Muchas gracias
20/01/2009
a_dotor, experto respondiendo en Microsoft Excel
Experto
hola disculpa la demora :
te adjunto una macro para que la evalues:
Sub Comparar()
Dim resp1 As String, resp2 As String, resp3 As Long
'resp1 = InputBox("Ingrese el primer rango")
'resp2 = InputBox("Ingrese el Seguno rango")
'resp3 = InputBox("Cantidad de repeticiones")
resp1 = "k1" 'columna K
resp2 = "Q1" ' columna Q
resp3 = 20 ' CANTIDAD DE REPETICIONES DEL CICLO debe rastrear las filas de la 10 a la 30 = 20
X1 = Range(resp1).Column
Z1 = Range(resp1).Row
X2 = Range(resp2).Column
Z2 = Range(resp2).Row
For H = 1 To resp3 ' HACES UN FOR PARA RASTREAR CUANTAS VECES QUIERAS

If Cells(Z1, X1).Font.Bold = True Then 'Verificaion K en negrita
Else
Valor2 = Cells(Z2, X2).Value 'VALOR Q
Valor1 = Cells(Z1, X1).Value ' VALOR K
Valor3 = Cells(Z1, 18).Value ' VALOR R
Valor4 = Cells(Z1, 2).Value ' VALOR B

'Si los valores de la columna Q son menores que los de la columna K
'y los de la columna R son mayores que los de la B, entonces ColorIndex=45
If Valor2 < Valor1 And Valor3 > Valor4 Then
Cells(Z1, 2).Select ' ESTA CELDA MODIFICA LA COLUMA B = 2
With Selection.Interior
ColorIndex = 45
.Pattern = xlSolid
End With
GoTo SALIDA:
End If
' SI Q ES MENOR QUE K
If Valor2 < Valor1 Then
Cells(Z1, 2).Select ' ESTA CELDA MODIFICA LA COLUMA B = 2
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
GoTo SALIDA:
End If
'Si los valores de la columna B son mayores o iguales a los de la K, entonces ColorIndex=3
If Valor4 >= Valor1 Then
Cells(Z1, 2).Select ' ESTA CELDA MODIFICA LA COLUMA B = 2
With Selection.Interior
ColorIndex = 3
.Pattern = xlSolid
End With
GoTo SALIDA:
End If
End If
SALIDA:
Z1 = Z1 + 1
Z2 = Z2 + 1
Next H
End Sub
21/01/2009
a_dotor, usuario preguntando en Microsoft Excel
Usuario
Perfecta, funcionando a las mil maravillas. Gracias
Enlaces patrocinados