• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Función si, hasta la última fila con datos de una columna

luzver18

Member
Hola a todos.
Tengo una macro pero no he podido adecuarla en la linea donde debería ir la formula, Por favor si alguien me puede ayudar con lo siguiente:

A partir de la celda M10 hacia abajo tengo una formula que hace un cálculo, pero necesito que esta formula se realice mediante una macro y que siempre se calcule hasta la altura de la ultima fila con datos de la columna "K" y el calculo aparezca como valores.

De la misma forma,

A partir de la celda C10 hacia abajo tengo una formula condicional, pero necesito que esta formula se realice mediante una macro y que siempre se calcule hasta la altura de la ultima fila con datos de la columna "B" y el resultado aparezca como valores.

Muchas gracias
 

Adjuntos

Cacho R

Well-known member
Hola! Luzver. Un método bastante usado es:
  • La fórmula de la celda M10 "la mantenés" siempre pues te servirá de modelo.
  • Copiás esa formula hacia abajo, y
  • Terminás pasando a valores desde M11 hacia abajo.
  • De este modo copiarás la fórmula y el formato.
Una forma de hacerlo sería así:
JavaScript:
Sub Macro3()
With Hoja4
  LR = .[k9].End(xlDown).Row
  With .Range("M10:M" & LR)
    .FillDown: .Offset(1) = .Offset(1).Value
  End With
End With
End Sub
La comodidad que te da este método es que si querés hacer lo mismo con otra columna, simplemente cambiás: "M10:M" por la columna que corresponda.

Saludos, Cacho R.
 

elforex

Member
Hola, para la formula de la columna C, segun tu enunciado.

A partir de la celda C10 hacia abajo tengo una formula condicional, pero necesito que esta formula se realice mediante una macro y que siempre se calcule hasta la altura de la ultima fila con datos de la columna "B" y el resultado aparezca como valores.
Prueba el siguiente codigo.

Código:
Sub formulab()

Dim Q&

Q = Cells(Rows.Count, "B").End(xlUp).Row

With Range("C10:C" & Q)
  .Formula = "=if(MID(Z10,2,8)=""FACTURAE"",1,if(MID(Z10,2,6)=""BOLETA"",3,if(MID(Z10,2,8)=""NOTA_CRE"",7,if(MID(Z10,2,8)=""NOTA_DEB"",8,0))))"
  .Value = .Value
End With

End Sub
 

elforex

Member
Hola! Luzver. Un método bastante usado es:
  • La fórmula de la celda M10 "la mantenés" siempre pues te servirá de modelo.
  • Copiás esa formula hacia abajo, y
  • Terminás pasando a valores desde M11 hacia abajo.
  • De este modo copiarás la fórmula y el formato.
Una forma de hacerlo sería así:
JavaScript:
Sub Macro3()
With Hoja4
  LR = .[k9].End(xlDown).Row
  With .Range("M10:M" & LR)
    .FillDown: .Offset(1) = .Offset(1).Value
  End With
End With
End Sub
La comodidad que te da este método es que si querés hacer lo mismo con otra columna, simplemente cambiás: "M10:M" por la columna que corresponda.

Saludos, Cacho R.
Maestro Cacho, un gusto saludarlo despues de un buen rato, siempre aprendiendo de usted.
 

luzver18

Member
Hola! Luzver. Un método bastante usado es:
  • La fórmula de la celda M10 "la mantenés" siempre pues te servirá de modelo.
  • Copiás esa formula hacia abajo, y
  • Terminás pasando a valores desde M11 hacia abajo.
  • De este modo copiarás la fórmula y el formato.
Una forma de hacerlo sería así:
JavaScript:
Sub Macro3()
With Hoja4
  LR = .[k9].End(xlDown).Row
  With .Range("M10:M" & LR)
    .FillDown: .Offset(1) = .Offset(1).Value
  End With
End With
End Sub
La comodidad que te da este método es que si querés hacer lo mismo con otra columna, simplemente cambiás: "M10:M" por la columna que corresponda.

Saludos, Cacho R.
Muchas gracias Cacho R.
Saludos
 

luzver18

Member
Hola, para la formula de la columna C, segun tu enunciado.



Prueba el siguiente codigo.

Código:
Sub formulab()

Dim Q&

Q = Cells(Rows.Count, "B").End(xlUp).Row

With Range("C10:C" & Q)
  .Formula = "=if(MID(Z10,2,8)=""FACTURAE"",1,if(MID(Z10,2,6)=""BOLETA"",3,if(MID(Z10,2,8)=""NOTA_CRE"",7,if(MID(Z10,2,8)=""NOTA_DEB"",8,0))))"
  .Value = .Value
End With

End Sub
Muchas gracias elforex
Saludos
 
Arriba