Como hacer autorrelleno de fórmula con Autofill

Que tal como están todos

Tengo una pregunta y espero que me puedan ayudar como siempre lo han hecho los integrantes de este prestigioso foro.

Resulta que estoy tratando de hacer una macro que me autorrellene unas celdas con una fórmula especifica, pero cuando corro la macro no me arroja los resultados que necesito, simplemente me copia el primer dato en todas las celdas como lo pueden ver en la siguiente imagen, he utilizado los diferentes tipos de Autofill (type:=xlxxxxxxx) pero no he obtenido el resultado esperado.

Gracias, espero me puedan ayudar

este es el codigo que estoy utilizando

Sub Autorelleno()

Range("C2") = Range("A2") * Range("B2")
Range("D2") = Application.CountIf(Range("A:A"), Range("A2"))

Range("C2").AutoFill Destination:=Range("C2:C20")
Range("D2").AutoFill Destination:=Range("D2:D20")

End Sub

Respuesta
1

A mi me sale este código con la grabadora de macros:

Sub Macro2()
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C20"), Type:=xlFillDefault
Range("C2:C20").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R2C1:R13C1,RC[-3])"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D20"), Type:=xlFillDefault
Range("D2:D20").Select
Range("D21").Select
End Sub

Insisto que es con la grabadora de macros. Mis escasos conocimientos sobre VBA no me impiden reconocer que esto es infinitamente mejorable mejorable, pero actualmente yo llego hasta aquí. Por cierto, funcionar, funciona.

Cambia esta línea por esta otra.

ActiveCell.FormulaR1C1 = "=COUNTIF(R2C1:R13C1,RC[-3])"

ActiveCell.FormulaR1C1 = "=COUNTIF(R2C1:R20C1,RC[-3])" para que el rango llegue hasta 20. No se de dónde ha salido ese 13

Gracias Gustavo

efectivamente como tu dices, con la grabadora de macros, osea de la forma R1C1 si funciona, lo voy a hacer de esta manera; de todas maneras me gustaría que alguien me dijera el motivo del por qué no funciona de la forma A1 .

GRACIAS

2 respuestas más de otros expertos

Respuesta

A lo ya dicho esto te puede aportar algo más

Respuesta

El objeto Application. WorksheetFunction usa las funciones de Excel para hacer el calculo pero NO ESCRIBE UNA FÓRMULA DE EXCEL... eso no lo puedes copiar hacia abajo... estaría compiando el RESULTADO que es lo único que al final se guardó en las celdas de la fila2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas