Como transformar una fórmula en macro

Quería saber como puedo convertir una fórmula en una macro, lo intente y me arroja un error.

la formula es la sgte, =si(y(o(j2="ok";j2="no aplica");o(k2="ok";k2="no aplica");o(v2="ok";v2="no aplica");o(w2="ok";w2="no aplica");o(x2="ok";x2="no aplica");o(y2="ok";y2="no aplica");o(z2="ok";z2="ao aplica");o(aa2="ok";aa2="no aplica");o(ab2="ok";ab2="no aplica");o(ac2="ok";ac2="no aplica");o(ad2="ok";ad2="no aplica");O(AE2="OK";AE2="No Aplica");O(AF2="OK";AF2="No Aplica");O(AH2="OK";AH2="No Aplica");O(AJ2="OK";AJ2="No Aplica");O(AL2="OK";AL2="No Aplica");O(AM2="OK";AM2="No Aplica");O(AN2="OK";AN2="No Aplica");O(AO2="OK";AO2="No Aplica");O(AP2="OK";AP2="No Aplica"));"OK";"Debe Documentos") y cuando la transforme en macro me quedol lon sgte: Sub Macro3()
'
' Macro1 Macro
'
'
Range("AQ2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(OR(RC[-33]=""OK"",RC[-33]=""No Aplica""),OR(RC[-32]=""OK"",RC[-32]=""No Aplica""),OR(RC[-21]=""OK"",RC[-21]=""No Aplica""),OR(RC[-20]=""OK"",RC[-20]=""No Aplica""),OR(RC[-19]=""OK"",RC[-19]=""No Aplica""),OR(RC[-18]=""OK"",RC[-18]=""No Aplica""),OR(RC[-17]=""OK"",RC[-17]=""No Aplica""),OR(RC[-16]=""OK"",RC[-16]=""No Aplica""),OR(RC[-15]=""OK"",RC[-15]=""No A" & _
        ",OR(RC[-14]=""OK"",RC[-14]=""No Aplica""),OR(RC[-13]=""OK"",RC[-13]=""No Aplica""),OR(RC[-12]=""OK"",RC[-12]=""No Aplica""),OR(RC[-11]=""OK"",RC[-11]=""No Aplica""),OR(RC[-9]=""OK"",RC[-9]=""No Aplica""),OR(RC[-7]=""OK"",RC[-7]=""No Aplica""),OR(RC[-5]=""OK"",RC[-5]=""No Aplica""),OR(RC[-4]=""OK"",RC[-4]=""No Aplica""),OR(RC[-3]=""OK"",RC[-3]=""No Aplica""),OR(RC[-2" & _
        "RC[-2]=""No Aplica""),OR(RC[-1]=""OK"",RC[-1]=""No Aplica"")),""OK"",""Debe Documentos"")"
    Range("AQ3").Select
End Sub

1 Respuesta

Respuesta
1

Te anexo la macro

Sub UnaFormula()
'Por.Dante Amor
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(OR(R[-1]C[-2]=""ok"",R[-1]C[-2]=""no aplica""),OR" & _
        "(R[-1]C[-1]=""ok"",R[-1]C[-1]=""no aplica""),OR" & _
        "(R[-1]C[10]=""ok"",R[-1]C[10]=""no aplica""),OR" & _
        "(R[-1]C[11]=""ok"",R[-1]C[11]=""no aplica""),OR" & _
        "(R[-1]C[12]=""ok"",R[-1]C[12]=""no aplica""),OR" & _
        "(R[-1]C[13]=""ok"",R[-1]C[13]=""no aplica""),OR" & _
        "(R[-1]C[14]=""ok"",R[-1]C[14]=""ao aplica""),OR" & _
        "(R[-1]C[15]=""ok"",R[-1]C[15]=""no aplica""),OR" & _
        "(R[-1]C[16]=""ok"",R[-1]C[16]=""no aplica""),OR" & _
        "(R[-1]C[17]=""ok"",R[-1]C[17]=""no aplica""),OR" & _
        "(R[-1]C[18]=""ok"",R[-1]C[18]=""no aplica""),OR" & _
        "(R[-1]C[19]=""OK"",R[-1]C[19]=""No Aplica""),OR" & _
        "(R[-1]C[20]=""OK"",R[-1]C[20]=""No Aplica""),OR" & _
        "(R[-1]C[22]=""OK"",R[-1]C[22]=""No Aplica""),OR" & _
        "(R[-1]C[24]=""OK"",R[-1]C[24]=""No Aplica""),OR" & _
        "(R[-1]C[26]=""OK"",R[-1]C[26]=""No Aplica""),OR" & _
        "(R[-1]C[27]=""OK"",R[-1]C[27]=""No Aplica""),OR" & _
        "(R[-1]C[28]=""OK"",R[-1]C[28]=""No Aplica""),OR" & _
        "(R[-1]C[29]=""OK"",R[-1]C[29]=""No Aplica""),OR" & _
        "(R[-1]C[30]=""OK"",R[-1]C[30]=""No Aplica"")),""OK"",""Debe Documentos"")"
End Sub

Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:

  • Excelente
  • Si
  • No

Saludos. Dante Amor

No olvides valorar la respuesta.

Genial, ¿muchas gracias y si quisiera que se replicara para toda la columna? ¿Qué le debería agregar?

Saludos

Cambia en la macro la letra "M" por la columna en donde quieras poner la fórmula

Sub UnaFormula()
'Por.Dante Amor
    For i = 3 To Range("J" & Rows.Count).End(xlUp).Row
        Cells(i, "M").Select
        ActiveCell.FormulaR1C1 = _
        "=IF(AND(OR(R[-1]C[-2]=""ok"",R[-1]C[-2]=""no aplica""),OR" & _
        "(R[-1]C[-1]=""ok"",R[-1]C[-1]=""no aplica""),OR" & _
        "(R[-1]C[10]=""ok"",R[-1]C[10]=""no aplica""),OR" & _
        "(R[-1]C[11]=""ok"",R[-1]C[11]=""no aplica""),OR" & _
        "(R[-1]C[12]=""ok"",R[-1]C[12]=""no aplica""),OR" & _
        "(R[-1]C[13]=""ok"",R[-1]C[13]=""no aplica""),OR" & _
        "(R[-1]C[14]=""ok"",R[-1]C[14]=""ao aplica""),OR" & _
        "(R[-1]C[15]=""ok"",R[-1]C[15]=""no aplica""),OR" & _
        "(R[-1]C[16]=""ok"",R[-1]C[16]=""no aplica""),OR" & _
        "(R[-1]C[17]=""ok"",R[-1]C[17]=""no aplica""),OR" & _
        "(R[-1]C[18]=""ok"",R[-1]C[18]=""no aplica""),OR" & _
        "(R[-1]C[19]=""OK"",R[-1]C[19]=""No Aplica""),OR" & _
        "(R[-1]C[20]=""OK"",R[-1]C[20]=""No Aplica""),OR" & _
        "(R[-1]C[22]=""OK"",R[-1]C[22]=""No Aplica""),OR" & _
        "(R[-1]C[24]=""OK"",R[-1]C[24]=""No Aplica""),OR" & _
        "(R[-1]C[26]=""OK"",R[-1]C[26]=""No Aplica""),OR" & _
        "(R[-1]C[27]=""OK"",R[-1]C[27]=""No Aplica""),OR" & _
        "(R[-1]C[28]=""OK"",R[-1]C[28]=""No Aplica""),OR" & _
        "(R[-1]C[29]=""OK"",R[-1]C[29]=""No Aplica""),OR" & _
        "(R[-1]C[30]=""OK"",R[-1]C[30]=""No Aplica"")),""OK"",""Debe Documentos"")"
    Next
End Sub

sañludos

Disculpa lo ultimo, la modifique muy poco pero para que cumpliera todo lo que necesitaba y funciona super bien, pero parte desde la celda aq3 envés de aq2 y si selecciono AQ2 solo hace esa y el resto las deja en blanca... disculpa las molestias

Sub Macro3()
'
' Macro1 Macro
'
For i = 3 To Range("J" & Rows.Count).End(xlUp).Row
        Cells(i, "AQ").Select
'
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(OR(RC[-33]=""OK"",RC[-33]=""No Aplica""),OR" & _
        "(RC[-32]=""OK"",RC[-32]=""No Aplica""),OR" & _
        "(RC[-21]=""OK"",RC[-21]=""No Aplica""),OR" & _
        "(RC[-20]=""OK"",RC[-20]=""No Aplica""),OR" & _
        "(RC[-19]=""OK"",RC[-19]=""No Aplica""),OR" & _
        "(RC[-18]=""OK"",RC[-18]=""No Aplica""),OR" & _
        "(RC[-17]=""OK"",RC[-17]=""No Aplica""),OR" & _
        "(RC[-16]=""OK"",RC[-16]=""No Aplica""),OR" & _
        "(RC[-15]=""OK"",RC[-15]=""No Aplica""),OR" & _
        "(RC[-14]=""OK"",RC[-14]=""No Aplica""),OR" & _
        "(RC[-13]=""OK"",RC[-13]=""No Aplica""),OR" & _
        "(RC[-12]=""OK"",RC[-12]=""No Aplica""),OR" & _
        "(RC[-11]=""OK"",RC[-11]=""No Aplica""),OR" & _
        "(RC[-9]=""OK"",RC[-9]=""No Aplica""),OR" & _
        "(RC[-7]=""OK"",RC[-7]=""No Aplica""),OR" & _
        "(RC[-5]=""OK"",RC[-5]=""No Aplica""),OR" & _
        "(RC[-4]=""OK"",RC[-4]=""No Aplica""),OR" & _
        "(RC[-3]=""OK"",RC[-3]=""No Aplica""),OR" & _
        "(RC[-2]=""OK"",RC[-2]=""No Aplica""),OR" & _
        "(RC[-1]=""OK"",RC[-1]=""No Aplica"")),""OK"",""Debe Documentos"")"
Next
End Sub

En la macro

For i = 3 To

Cambia el 3 por un 2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas