Autofill en una fila con fórmula

Tengo el siguiente código

Range("A8").FormulaLocal = "=SI(B7=""""|""""|CONTAR($B$8:B8))"
Range("a8").AutoFill Destination:=Range("a8:a" & Range("b" & Rows.Count).End(xlUp).Row)

Bueno mediante está macro pongo la fórmula en la columna A8 y lo copia hasta el final según la orden, todo bien asta ahí, solo que cuando es una sola fila con datos me sale el mensaje de error

Se ha producido el error '1004' en tiempo de ejecución : Error en el método AutoFill de la clase Range.

¿Cómo puedo evitar este error?

1 respuesta

Respuesta
1

Puedes revisar el código o la fórmula que pusiste, no es correcta.

Envía nuevamente tu macro completa

O envía la fórmula tal como la tienes en la celda

Ya revisé la fórmula, le faltaba el separador.

Utiliza la siguiente macro

Sub macro2()
    With Range("A8:A" & Range("B" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(R[-1]C[1]="""","""",COUNT(R8C2:RC[1]))"
    End With
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Estimado Dante, capo como siempre, veo que hiciste de otra manera, ¿pero cómo haría para toda estas fórmulas?

Range("P8").FormulaLocal = "=SI(N8=0|0|N8*T8)"

Range("S8").FormulaLocal = "=SI(M8=0|0|M8-Q8)

Range("T8").FormulaLocal = "=INDICE(COM!$B$2:$G$15|COINCIDIR($C$4|COM!$A$2:$A$15|0)|COINCIDIR(C8|COM!$B$1:$G$1|0))

Muchas gracias por tu colaboración

Jesús

Te enseño cómo le hago.

- Activo la grabadora de macros.

- Selecciono la celda que tiene la fórmula, por ejemplo selecciona la celda P8

- Edita la fórmula y presiona enter

- Desactiva la grabadora de macros.

- Entra a VBA, busca el módulo donde se grabó la nueva macro. Te creó algo como esto:

Sub Macro1()
'
' Macro1 Macro
'
'
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]=0,0,RC[-2]*RC[4])"
    Range("P9").Select
End Sub

- Ahora, la columna en donde vas a poner la fórmula va desde P8 hasta Pn; n es la última fila con datos de la columna B.

Entonces se pone lo siguiente:

With Range("P8:P" & Range("B" & Rows.Count).End(xlUp).Row)

Significa que va desde la P8 hasta P y la última celda con datos de la columna B.

- Quitas la palabra activecell que te puso la grabadora de macros, y agregas el end with:

Sub Macro1()
'
' Macro1 Macro
'
'
    With Range("P8:P" & Range("B" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(RC[-2]=0,0,RC[-2]*RC[4])"
    End With
End Sub

Ahora ya sabes cómo hacer con todas las fórmulas.

Prueba con las otras fórmulas.

Si necesitas más ayuda, r ecuerda valorar esta respuesta y crea una nueva pregunta por cada petición.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas