Macro para Modificar una Fórmula

Primero que nada soy un principiante en esto de las macros y VB y tengo una duda...
¿Se podría hacer una macro que sume 1 a una fórmula?... Me explico...
Tengo una fórmula sencilla que es =A1... Lo que quiero es que al dar click en un botón la fórmula cambie a =A2...

1 respuesta

Respuesta
2
Leí que arancas en esto y por eso trato de explicarte lo mejor posible.
Espero no confundirte.
'Pequeña leccion para cambiar la referencia a una formula.
'Amigo hice lo siguiente: en la celda A1 escribi Nombre, desde A2 hasta A10 escribi los nombres de 9 personas.
'Desconosco lo que desea hacer o el proposito de cambiar en 1 la direccion de celda de la formula?
'hice 2 macro que me ayudran a escribir la formula y me quedo asi:
Sub Macro6()
' Macro6 Macro
    ActiveCell.FormulaR1C1 = "=RC[-1]"
End Sub
Sub Macro7()
' Macro7 Macro
    ActiveCell.FormulaR1C1 = "=R[1]C[-1]"
End Sub
'Si observas el unico dato que cambia es [1] en la segunda macro, la primera no tenia nada asociado a la R.
'Que debemos hacer, cada vez que yo de click en algun boton el numero se debe incrementar en 1.
'lo ideal es que es numero estuviera almacenado en algun lugar pero como eso puede o no ser posible, para este caso no lo haremos asi.
'NUESTRA MACRO PARA CUMPLIR TU PROPOSITO SERIA LA SIGUIENTE.
Sub Formula_incremental()
' Macro digitada en su totalidad.
    'la formula estara en la celda B2
    Range("B2").Select
    q1 = ActiveCell.FormulaLocal  'Para ver como nosotros vemos la formula
    q2 = ActiveCell.FormulaR1C1
    q3 = ActiveCell.FormulaR1C1Local
    q4 = Len(q1)
    If q4 > 0 Then
        q5 = Mid(q1, 3, q4 - 2)
    Else
        q5 = 0
    End If
    If ActiveCell.Value = "" Then
        v_formula = "=RC[-1]"
    Else
        ww = ActiveCell.FormulaR1C1
        pos3 = Mid(ww, 3, 1)
        If pos3 = "C" Then
            v_formula = "=R[1]C[-1]"
        Else
            'lnum = Mid(ww, 4, 1) + 1
            lnum = q5 - 1
            v_formula = "=R[" + Trim(Str(lnum)) + "]C[-1]"
        End If
    End If
    ActiveCell.FormulaR1C1 = v_formula
    'Confieso que me demore un poco solucionadolo pero ya esta
    'espero te sirva
End Sub
Hector Ivan Reyes Leal
¿Ya viste la respuesta?
Cierra la pregunta si estas conforme.
Hector Ivan Reyes Leal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas