Comparar Celdas!!

17/03/2005 - 04:51 por DANILO ARANGO | Informe spam
Hola De Nuevo!!
Necesito Comparar una celda, que si tiene una valor determinado me ponga en
una celda otro valor, en el archivo que trabajo lo tengo que hacer asi:
Las Columnas de la I a la R deben o no de tener una X dependiendo de lo que
hay en otra celas por ejemplo:

I J K L M N O P Q R T
X RET
X ING
X VAC
Los valores que hay en la columna T son las condiciones de cada una columnas
de las de la I a la R.
Tengo una macro que me compara una fila:

Select Case Range("T1").Select
Case Range("T1").Value = "ing"
Range("I1").Select
ActiveCell.FormulaR1C1 = "X"
Case Range("T1").Value = "ret"
Range("J1").Select
ActiveCell.FormulaR1C1 = "X"
Case Range("T1").Value = "vac"
Range("R1").Select
ActiveCell.FormulaR1C1 = "X"
Case Else
Range("I1").Select
ActiveCell.FormulaR1C1 = ""
Range("J1").Select
ActiveCell.FormulaR1C1 = ""
Range("K1").Select
ActiveCell.FormulaR1C1 = ""
Range("L1").Select
ActiveCell.FormulaR1C1 = ""
Range("M1").Select
ActiveCell.FormulaR1C1 = ""
Range("N1").Select
ActiveCell.FormulaR1C1 = ""
Range("O1").Select
ActiveCell.FormulaR1C1 = ""
Range("P1").Select
ActiveCell.FormulaR1C1 = ""
Range("Q1").Select
ActiveCell.FormulaR1C1 = ""
Range("R1").Select
ActiveCell.FormulaR1C1 = ""
End Select

Y asi todas las celdas, pero esto lo tengo que hacer fila por fila y me
queda un codigo muy grande por que llevo 500 filas y quiero hacerlo para
muchas mas filas.

Alguna manera de hacerlo en un ciclo, o de alguna manera mas automatico..

GRACIAS A TODOS
 

Leer las respuestas

#1 Héctor Miguel
17/03/2005 - 05:41 | Informe spam
hola, Danilo !

... celda, que si tiene un valor determinado me ponga en una celda otro valor
... de la I a la R deben o no de tener una X dependiendo de lo que hay en otra celas por ejemplo:
I J K L M N O P Q R T
X RET
X ING
X VAC [...]



de acuerdo con la 'posicion' que marcas en el ejemplo...
-> ING 'va' en la columna I
-> RET 'va' a la columna 'J'
-> VAC 'va' a la columna 'R'...
=> selecciona el rango de claves de la columna 'T' y prueba con la siguiente macro

si cualquier duda [o las condiciones 'cambian']... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub PonerClave()
Application.ScreenUpdating = False
Dim Clave, Desplaza, Celda As Range, Sig As Byte
Clave = Array("Ing", "Vac", "Ret")
Desplaza = Array(-11, -10, -2)
For Each Celda In Selection
Celda.Offset(, -11).Resize(, 10).ClearContents
For Sig = LBound(Clave) To UBound(Clave)
If LCase(Celda) = LCase(Clave(Sig)) Then Celda.Offset(, Desplaza(Sig)) = "X": Exit For
Next
Next
End Sub

Preguntas similares