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...
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.