Insertar Fórmula por condición

Hola, bueno días.
Mi consulta es la siguiente como puedo colocar una fórmula en un rango (x:x) si el valor de una celda es 1.
Por ejemplo:
Tengo esta fórmula:
=IF(ISERROR(VLOOKUP(CONCATENATE($D262,$E262),$A$5:$N$241,COLUMN()-10,FALSE)),"No",VLOOKUP(CONCATENATE($D262,$E262),$A$5:$N$241,COLUMN()-10,FALSE))
Si las celdas tuvieran estos valores:
Y3=1
Y4=1
Y5=0
Y6=0
Y7=1
Quiero que en el rango de n3:x3
Me coloque la macro la fórmula,
la necesito así por que los rangos me cambian constantemente.
Y los valores de 1 y 0 es una fórmula que me sirve para un formato condicional.
Atentamente.
Cduarte
Espero me entiendas.
De antemano gracias.

1 Respuesta

Respuesta
1
Según lo que interpreto de tu consulta necesitas en una macro instrucciones como estas:
Sub MacroFormulas()
If Range("Y3") = 1 Then
'PARA 1 SOLA CELDA
Range("N3").Select
ActiveCell.FormulaR1C1 = _
"=+IF(ISERROR(VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALS0)),""NO"", VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALSE))"
'para un rango de celdas
Range("O3:R3").FormulaR1C1 = _
"=+IF(ISERROR(VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALS0)),""NO"", VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALSE))"
End If
End Sub
Comentame si con esto solucionas tu problema ...
Parte de la solución es esa, pero necesito que me la fórmula la valla colocando en varios rangos ya que la condición de 1 y 0 son como 40 filas que tiene que evaluar como hago para que evalúe todas esas filas y coloque la fórmula cada ves que encuentre 1.
Espero me comprendes, lo que necesito es un bucle, pero no se como se hace.
Atentamente.
Cduarte
Saludos
Si deseas saber cómo se hace un bucle empezaría recomendándote mi manual de macros donde encontrarás un capítulo dedicado a esto, ;)
Aquí va un bucle que recorre la col Y hasta una celda que le indiques.
Sub MacroFormulas()
Dim fila As Integer
ActiveSheet.Range("Y3").Select
'repite el bucle hasta encontrar la última fila
While ActiveCell.Row <= 50
If ActiveCell = 1 Then
'PARA 1 SOLA CELDA
'la col N está a 11 col a la izq de la activa
'ActiveCell.Offset(0, -11).Select
'ActiveCell.FormulaR1C1 = _
"=+IF(ISERROR(VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALS0)),""NO"", VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALSE))"
'para un rango de celdas
'establece el nro de fila activa
fila = ActiveCell.Row
Range("N" & fila & ":X" & fila).FormulaR1C1 = _
"=+IF(ISERROR(VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALS0)),""NO"", VLOOKUP(CONCATENATE(R[259]C4, R[259]C5), R5C1:R241C14, COLUMN()-10, FALSE))"
End If
'pasa a la celda siguiente
ActiveCell.Offset(1, 0).Select
Wend

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas