Macro autorrelleno de celdas en Excel VBA

Macro de autorrelleno de celdas en Excel
Me encuentro trabajando en una macro, que selecciona dos o más celdas, y con respecto a la columna de al lado, ejecuta el autorrelleno.

En este caso, tengo valores en la columna A, desde A1 hasta A10 por ejemplo, y al costado derecho tengo dos fórmulas, cada una ubicada en las columnas B1 y C1 respectivamente, mi idea es que seleccionada las celdas B1:C1 y ejecutada la macro, se realiza el autorrelleno que seria hasta llegar a la columna A1. La cuestión es que la columna A, va incrementando las celdas con datos, es decir que al siguiente día, no solo tendrá datos desde A1 hasta A10, sino también hasta A20 y así sucesivamente, por lo cual no podre establecer en que punto se iniciaría el nuevo autorrelleno, hasta llegar hasta la A20, conservando los datos del autorrelleno anterior.

EL problema lo tengo en la fila : Selection.AutoFill Destination:=Range("celda:C" & finrgo), ya que la variable "celda", me esta generando problema.

Sub autorrelleno()

Dim celda As String
celda = ActiveCell.Address 'Celda B1
finrgo = Range("A1048576").End(xlUp).Row
Range(Selection.Address).Select 'Seleccion del rango B1:C1
Selection.AutoFill Destination:=Range("celda:C" & finrgo) 'Aqui deberia quedar "B1:C"

End Sub

3 respuestas

Respuesta
1

Yo no considero practico lo que quieres hacer pero de todas formas te dejo un método:

Sub Rellenar()
Dim uF As Long: uF = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Dim RngOrigen As Range
Dim RngRelleno As Range
Set RngOrigen = Worksheets("Sheet1").Range("B1:C1")
Set RngRelleno = Worksheets("Sheet1").Range("B1:C" & uF)
RngOrigen.AutoFill Destination:=RngRelleno
End Sub

Pruebalo :)

Dependiendo tu version de Excel y la fórmula que estas rellenando, es posible que esa macro solo debas ejecutarla una vez, y cada vez que agregues nuevos registros en la columna A es posible que las fórmulas en B y C se pongan automáticamente.

Respuesta
1

[Hola

Mira como debería ser:

Selection.AutoFill Destination:=Range(celda & ":C" & finrgo)

Las variables nunca van entre comillas ya que para el VBA eso es una cadena de texto, no una variable

Saludos]

Abraham Valencia

PD: He respetado tu forma de hacerlo pero yo no lo haría así

Respuesta
1

Prueba con esta macro, ya sea que quites o añadas números actualizara las fórmulas en las columnas B y C

Sub rellena3()
With Range("a1").CurrentRegion
    filas = .Rows.Count
    Range("b1:c1").AutoFill Destination:=Range("B1:C" & filas)
End With
End Sub
La pregunta no admite más respuestas

Más respuestas relacionadas