Crear rango variable en una macro

Tengo este macro

Application.ScreenUpdating = False: With Range("K1:EZ1000").Columns
Pero necesito que el rango Range("K1:EZ1000"). Columns, sea teniendo en cuenta la ultima columna con datos que no en todos los casos es EZ1000

Respuesta
2

Prueba lo siguiente para la última fila y la última columna

Dim uf As Long, uc As Long
uf = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
uc = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Columns.Count).Count
Range("K1", Cells(uf, uc)). Columns

Recomendación:

Consejos para empezar VBA

Hola, muchas gracias Dante

pero la macro no me esta funcionado. La idea de la macro que es la columnas que den 0 sean eliminadas pero no lo esta haciendo

Podrías explicar con tus palabras qué necesitas.

Olvida la macro y explica con ejemplo qué necesitas.

Dices: " La idea de la macro que es la columnas que den 0 sean eliminadas "

Estás de acuerdo que no veo tus datos, por lo tanto no sé en dónde revisar si la celda es igual a 0.

Entonces si explicas con calma, cuáles celdas quieres verificar, empezando en cual columna.

Con gusto te ayudo.

Sal u dos

Dante Amor

Muchas gracias

La sumatoria de columnas empieza dn la columna QUE y total, es decir filas también es variable, puede terminar en la 200 o en más de 200, porque en la última fila esta la suma pero si en una columna todo es 0, la sumatoria obviamente es 0 y necesito eliminar esas columnas, solo debo. Mostrar las que sumen más de 0 y al. Final debo hacer una suma teniendo en cuenta si el encabezado tiene la palabra Vr. Me sume sume esos valores, también desde columna que hasta el final

Prueba:

Sub borrarcolumnas()
Dim uf As Long, j As Long
Application.ScreenUpdating = False
uf = Range("K" & Rows.Count).End(3).Row
For j = Cells(uf, Columns.Count).End(1).Column To Columns("K").Column Step -1
If Cells(uf, j) = 0 Then Columns(j).Delete
Next
Application.ScreenUpdating = False
End Sub

Sub borrarcolumnas()
  Dim uf As Long, j As Long
  Application.ScreenUpdating = False
  uf = Range("K" & Rows.Count).End(3).Row
  For j = Cells(uf, Columns.Count).End(1).Column To Columns("K").Column Step -1
    If Cells(uf, j) = 0 Then Columns(j).Delete
  Next
  Application.ScreenUpdating = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas