Fórmula "If" con una macro

Hola experto! Espero que me puedas ayudar con esto:
Necesito hacer una macro que calcule porcentajes de acuerdo al tipo de empleado y coloco lo siguiente:
ActiveCell.Offset(0, 1).Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-11]=RC[-9],RC[-1],IF(RC[-10]=""socio"",RC[-2] *DatosBásicos!c12*(1-DatosBásicos!c5),IF(RC[-10]=""asociado"",RC[-2]*DatosBásicos!c12*(1-DatosBásicos!c6),IF(RC[-10]=""externo"",RC[-2]*DatosBásicos!c12*(1-DatosBásicos!c7)))))"
    ActiveCell.Offset(0, 1).Select
Pero cuando la ejecuto, me coloca lo siguiente en la celda:
=SI(E8=G8;O8;SI(F8="socio";N8*(+DatosBásicos!$L:$L)*(1-DatosBásicos!$E:$E);SI(F8="asociado";N8*DatosBásicos!$L:$L*(1-DatosBásicos!$F:$F);SI(F8="externo";N8*DatosBásicos!$L:$L*(1-DatosBásicos!$G:$G))))
Es decir, no toma bien la celda que necesito que utilice para el cálculo.
¿Dónde está mi error?
Te agradezco desde ya muchísimo por tu tiempo.
María

1 respuesta

Respuesta
1
El código me resulta un poco confuso. Quizás el problema este en el ofset o bien en que has seleccionado las columnas completas. Tampoco suelo hacer las fórmulas dinámicamente resulta mucho más complicado y engorroso.
Si pones los datos por filas probablemente te resulte más cómodo ya que no es necesario todo ese código. También podrías hacer función y pasar los 3 datos que necesites como parámetro ( Tipo empleado, porcentaje, etc..) te va a quedar todo mucho más sencillo y fácil de comprobar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas