Macro para completar formulas

Señores tengo eñ siguiente código que completa las formulas hacia abajo luego de evaluar la columna a, e tratado de modificarla para que pueda completar la formula de varias columnas pero no lo he conseguido, debiera poder completar formulas hasta la columna L, se las dejo para su revisión

Sub ultimapaso2()
Sheets("hoja2").Select
libre = Range("d65536").End(xlUp).Row
ulti = Range("A65536").End(xlUp).Row
Range("d" & libre).Copy
Range("d" & libre + 1 & ":d" & ulti).PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

1 Respuesta

Respuesta
1

Creo que es esto lo que quieres:

Sub ultimapaso2()
Sheets("hoja2").Select
Dim ulti, libre, i As Integer
ulti = Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To 12
    libre = Range(Cells(Rows.Count, i), Cells(Rows.Count, i)).End(xlUp).Row
    If libre > 0 Then
       Range(Cells(libre, i), Cells(libre, i)).Copy
       Range(Cells(libre + 1, i), Cells(ulti, i)).PasteSpecial Paste:=xlFormulas
    End If
Next
Application.CutCopyMode = False
End Sub

Pruébalo. En las columnas donde haya al menos una fórmula la copiará en las filas de abajo.

Y eso es todo si te sirve tal como está. Si no es así, dime lo que necesitas.

Experto, si se debiera aplicar esto desde la columna N a la V que parámetros se debieran cambiar.

Simplemente hay que cambiar esta línea dejándola así

For i = 14 to 22

El primer número corresponde al número de columna de la N y el segundo al de la V.

Hay otra forma que se puede usar cuando sean columnas entre la A y la Z, cuando haya columnas AA, AB, etc ya no sirve. Este método no nos obligaría a contar el número de la columna, sería cambiando la línea por esta otra

For i = Asc("N")- 64 to Asc("V")-64

Hay que tener cuidado de que la Y y la V vayan en mayúsculas, ya que la función ASC("N") es distinta de Asc("n"). La función Asc devuelve el código ASCII de un carácter. Hay tablas donde puedes verlos.

Ta puede interesar que

Asc("0") = 48

ASC("A") = 64

Y la inversa es la función Chr

Chr(65) = "A"

Chr(49) = "1"

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas