Como utilizar una variable dentro de una fórmula R1C1

Tengo la siguiente línea de código

ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],3)+1.5*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"

Lo que quiero es que el "1.5" pueda representarlo como una variable X de modo que quede algo como

ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],3)+[" & x & "]*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"

Como podría realizar esto? 

1 Respuesta

Respuesta
2

H o  l a:

Quedaría así:

x = 1.5
ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],3)+" & x & "*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"

':)
':)

Cuando coloco el código y lo ejecuto me da un error "definido por la aplicación o el objeto"

¿Tienes declarada la variable x?

Primero tienes que seleccionar la celda en donde va a quedar la fórmula.

¿Estás poniendo 1.5 a la variable x?

x= 1.5

¿Tu macro es más grande? ¿Puedes poner la macro completa?

La macro completa va así: 

Sub eliminarceros_quarliles()
ult = Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
   For r = 24 To 35
        rango = "Segmento" + Trim(Str(r - 23))
        Sheets("Panel de control2").Select
        ReDim ArrayCriterio(20) As String
        Inicio = Range("B" + Trim(Str(r))).Text
        Fin = Range("C" + Trim(Str(r))).Text
        If Inicio <> "" And Fin <> "" Then
            'Construimos la cadena de los años a filtrar
            For i = Inicio To Fin
                ArrayCriterio(i - Inicio) = i
            Next
            Sheets(rango).Select
            Range("BC:CX").Select
For col = 5 To 47
    For fil = 1 To 5001
        ActiveSheet.Cells(fil, col).Select
        If ActiveCell.Text = "0" Then
            ActiveCell.ClearContents
        End If
    Next fil
Next col
ActiveSheet.Cells(1, 1).Select
Dim contador As Double
Dim k As Double
Dim m As Double
x = 1.5
y = 1.5
    Range("AX1").Select
    ActiveCell.FormulaR1C1 = "CUARTIL1"
    Range("AY1").Select
    ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],1)-" & x & "*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"
    Range("AY1").Select
    Selection.Copy
    Range("AY1:CO1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("AX2").Select
    ActiveCell.FormulaR1C1 = "CARTIL2"
    Range("AY2").Select
    ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],3)+" & y & "*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"
    Range("AY2").Select
    Selection.Copy
    Range("AY2:CO2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("CU2").Select
    Range("AY3").Select
    ActiveCell.FormulaR1C1 = "=R[-2]C[-46]"
    Range("AY3").Select
    Selection.Copy
    Range("AY3:CO3").Select
    ActiveSheet.Paste
    Range("AY4").Select
ActiveCell.Value = "=IF(R[-2]C[-46]="""","""",IF(AND(R[-2]C[-46]>=R1C,R[-2]C[-46]<=R2C),R[-2]C[-46],""""))"
''''''
    Range("AY4").Select
    Selection.AutoFill Destination:=Range("AY4:CO4"), Type:=xlFillDefault
    Range("AY4:CO4").Select
    Selection.AutoFill Destination:=Range("AY4:CO406"), Type:=xlFillDefault
    Range("AY4:CO406").Select
    Sheets("Panel de control2").Select
    Range("D1").Select
                    End If
    Next r
Application.ScreenUpdating = True
End Sub

si se requiere pude enviar una foto o el archivo en si 

Ya lo intente de otras formas pero aun me sigue apareciendo el error, tengo declarada la variable x pero aun así no funciona 

¿Y en dónde aparece el error?

Si seleccionas la celda Y1, entonces en la columna E debes poner los valores.

Envíame tu archivo para revisarlo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Alejandro Guerrero” y el título de esta pregunta.

Ya envié el documento, la macro la acorte para que solo este la parte que sacas los quartiles, por lo que inicia desde los DIM.

Gracias  

Pero no me dices cuál es el problema, ya ejecuté la macro y no tiene errores la macro, ¿entonces cuál es el problema?

El problema es que al ejecutar lo que te envié, me sale este error:

en la linea de código que muestro a continuación:

Prueba esto:

Range("AY1").Select
    ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],1)-" & 1.5 & "*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"
    Range("AY1").Select

Creo que escogimos mal la variable, prueba con otra variable, por ejemplo:

    wvariable = 1.5
    Range("AY1").Select
    ActiveCell.FormulaR1C1 = _
        "=QUARTILE(R2C[-46]:R1048576C[-46],1)-" & wvariable & "*((QUARTILE(R2C[-46]:R1048576C[-46],3)-(QUARTILE(R2C[-46]:R1048576C[-46],1))))"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas