Como colocar fórmulas en un rango de celdas con macro.

Para Elsa.

Necesito crear una macro que me permita generar una hoja que contenga una fórmula en la columna G (G=W/S) a partir de la entrada de datos en la Columna W. Le envíe un email con más detalles. Déjeme saber si me explico.

1 respuesta

Respuesta
1

Retirá la línea dentro del For x = donde le estas enviando un resultado a la celda G, y agregá este código al final de la macro. Allí se coloca la fórmula y luego se arrastra al resto de la col G:

'-----
'al finalizar la copia se arrastra la fórmula de col G hasta el final
'ya se está en hoja ASN
fini = Range("A" & Rows.Count).End(xlUp).Row
Range("G3").FormulaR1C1 = "=IF(RC[16]>0,RC[16]/RC[12],0)"
Range("G3").AutoFill Destination:=Range("G3:G" & fini), Type:=xlFillDefault
'------
Call CopiaHoja
End Sub

Ya te devuelvo el libro.

Lo que hacen esas 3 líneas es lo siguiente:

- En la variable 'fini' guarda la última fila con datos según col A. Debes utilizar la columna que te dará el fin de rango.

- Escribe la fórmula en G3

- Arrastra la fórmula desde G3 hasta la última celda que tiene 'fini'.

De ninguna manera se puede obtener con esas simples instrucciones lo que me mostrás en tu imagen enviada:

Como observamos, aquí se te copió el formato (y el contenido de la fila 2) no se nota que también se te copió el contenido porque luego envias datos a cada columna... menos en la W...

Entonces como ya sabes programar no te va a resultar difícil encontrar la instrucción donde insertas una fila y debajo de esa instrucción limpiá la celda W3 con esta línea:

W3=""

Sdos.

Elsa

¡Muchas Gracias! 

De nada... solo no olvides marcar un valoración para quitar la consulta de lista de pendientes.

Sdos!

Te recuerdo que esta consulta sigue aún como pendiente de 'respuesta' cuando ya la he respondido ampliamente. Debes valorarla para darla por cerrada.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas