UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Aretradeser


Buenas noches,
Utilizo un formulario para el registrar datos (de las columnas "A" a la "N", donde de A1 a N1 van los títulos). Pero necesito añadirle al código que utilizo para el ingreso de estos datos, que también copie unas fórmulas en unas columnas determinas cada vez que se realizo un registro; pero el problema es que ignoro cual debe ser este código, junto con la transformación de estas funciones excel al código VBA. Las fórmulas que pretendo copiar desde el código VBA son las siguientes:
1ª.- =SI(A2="";"";SI(Y($O$1-$I2>20;$J2="");"X";"")) Debe copiarse en la columna "O"
2ª.- =SI(A2="";"";SI(Y($O$1-$I2>15;$O$1-$I2<=20;$J2="");"X";"")) Debe copiarse en la columna "P"
3ª.- =SI(A2="";"";SI(Y($O$1-$I2>=0;$O$1-$I2<=15;$J2="");"X";"")) Debe copiarse en la columna "Q"
4ª.- =SI(Y($J2-$I2>=0;$J2-$I2<=15;$J2<>"");"X";"") Debe copiarse en la columna "R"
5ª.- =SI(Y($J2-$I2>15;$J2-$I2<=20;$J2<>"");"X";"") Debe copiarse en la columna "S"
6ª.- =SI(Y($J2-$I2>20;$J2<>"");"X";"") Debe copiarse en la columna "T"
Muchas gracias.
Saludos

railar


Hola Aretradeser,

Enciende la grabadora de macros, posicionate en la celda donde inicias tu formula en la columna O, elabora tu formula, como en si fuese una formula normal de excel,
realizas todos los procedimientos y formulas que tienes; y el código obtenido lo subes y te ayudaremos a depurarlo.

Saludos

Raúl

Aretradeser


Muchas gracias por tu respuesta. Ahí va el código:
Código:
Sub Formula()
'
' Formula Macro
' Macro grabada el 10/04/2014 por
'
Código:
'
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-14]="""","""",IF(AND(R1C15-RC9>20,RC10=""""),""X"",""""))"
    Range("P2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-15]="""","""",IF(AND(R1C15-RC9>15,R1C15-RC9<=20,RC10=""""),""X"",""""))"
    Range("Q1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(R[1]C[-16]="""","""",IF(AND(R1C15-R[1]C9>0,R1C15-R[1]C9<=15,R[1]C10=""""),""X"",""""))"
    Range("R1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(R[1]C10-R[1]C9>=0,R[1]C10-R[1]C9<=15,R[1]C10<>""""),""X"","""")"
    Range("S1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(R[1]C10-R[1]C9>15,R[1]C10-R[1]C9<=20,R[1]C10<>""""),""X"","""")"
    Range("T1").Select
    ActiveCell.FormulaR1C1 = "=IF(AND(R[1]C10-R[1]C9>20,R[1]C10<>""""),""X"","""")"
End Sub

railar


Hola Aretradeser,

Te paso el código y un adjunto de prueba, ya para el formulario puedes llamar esta macro para que quede automatizado con el.
Código:
Sub Formula()
Dim valor1, valor2 As Integer
Dim Resultado As String

Application.ScreenUpdating = False

Resultado = "X"
valor1 = Range("O1").Value - Range("I2").Value
valor2 = Range("J2").Value - Range("I2").Value

Range("O2, P2, Q1, R1, S1, T1").ClearContents

If Range("A2") <> "" And valor1 > 20 And Range("J2") = "" Then Range("O2").Value = Resultado
If Range("A2") <> "" And valor1 > 15 And valor1 <= 20 And Range("J2") = "" Then Range("P2").Value = Resultado
If Range("A2") <> "" And valor1 >= 0 And valor1 <= 15 And Range("J2") = "" Then Range("Q1").Value = Resultado
If valor2 >= 0 And valor2 <= 15 And Range("J2") <> "" Then Range("R1").Value = Resultado
If valor2 > 15 And valor2 <= 20 And Range("J2") <> "" Then Range("S1").Value = Resultado
If valor2 > 20 And Range("J2") <> "" Then Range("T1").Value = Resultado

Application.ScreenUpdating = True

End Sub


Saludos
Archivos
Resultado.xls
No tienes los permisos para descargar los archivos.
(31 KB)

Aretradeser


railar, perfecto. Muchísimas gracias por tu rápida y certera respuesta.
Saludos.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.