Macro para eliminar filas y columnas vacías

Macro para eliminar Filas y Columnas vacías para que una tabla empiece siempre en a1, ya que tabla la mandan y comienza en distintas celdas como d8, c4, f5,etc, no hay un criterio, se podrán borrar las filas por encima de la tabla y las columnas por la izquierda que estén vacías??? Desde ya gracias

2 Respuestas

Respuesta
1

Esta es la macro

Sub borrafyc()
'Por.DAM
    pf = ActiveSheet.UsedRange.Rows(1).Row
    pc = ActiveSheet.UsedRange.Columns(1).Column - 1
    col = Replace(Cells(1, pc).Address(False, False), "1", "")
    If pf > 1 Then Rows(1 & ":" & pf - 1).Delete
    If pc > 1 Then Range("A1", col & 1).EntireColumn.Delete
End Sub

Antes de valorar la respuesta si tienes dudas puedes solicitar más información, con esto podré darte una respuesta completa.

Surgió un detalle, te cambio la macro

Sub borrafyc()
'Por.DAM
    pf = ActiveSheet.UsedRange.Rows(1).Row
    pc = ActiveSheet.UsedRange.Columns(1).Column - 1
    If pf > 1 Then Rows(1 & ":" & pf - 1).Delete
    If pc >= 1 Then
        col = Replace(Cells(1, pc).Address(False, False), "1", "")
        Range("A1", col & 1).EntireColumn.Delete
    End If
End Sub

Te anexo la abreviada:

Sub borrafyc()
'Por.DAM
    pf = ActiveSheet.UsedRange.Rows(1).Row
    pc = ActiveSheet.UsedRange.Columns(1).Column
    If pf > 1 Then Rows(1 & ":" & pf - 1).Delete
    If pc > 1 Then Range("A1", Replace(Cells(1, pc - 1).Address, "1", "") & 1).EntireColumn.Delete
End Sub

¡Gracias! , Utilice la abreviada y funciono muy bien.

Un problema tiene tantas soluciones como personas intenten resolverlo. Por Dante Amor

Respuesta
1

Instrucciones para encontrar rangos vacíos o con datos hay muchas. Este ejemplo te servirá para cualquier rango.

Sub eliminaVacias()
'x Elsamatilde
'recorre filas hasta encontrar 1 con datos
i = 1: x = 0
While x = 0
Range("A" & i).EntireRow.Select
canti = Application.WorksheetFunction.CountA(Selection)
If canti > 0 Then
    x = 1
Else
    i = i + 1
End If
Wend
'elimina desde fila 1 hasta la anterior a la que tiene datos
If i > 1 Then Range("A1:A" & i - 1).EntireRow.Delete
'recorre col hasta encontrar 1 con datos
i = 1: x = 0
While x = 0
Cells(1, i).EntireColumn.Select
canti = Application.WorksheetFunction.CountA(Selection)
If canti > 0 Then
    x = 1
Else
    i = i + 1
End If
Wend
If i > 1 Then Range(Cells(1, 1), Cells(1, i - 1)).EntireColumn.Delete
Range("A1").Select
MsgBox "Fin del proceso"
End Sub

Últimamente el foro parece haberse convertido en un 'concurso' de códigos abreviados ... Podes elegir el que más te guste o el que comprendas ... mientras resuelva lo que necesites.

Sdos

Elsa

Estimada, probé su código y me resulto igual de bien que en la otra respuesta, no soy experto en códigos, por lo tanto los pruebo todos los que me digan, espero aprender y entregar aporte en algún momento, Muchas Gracias!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas