Macro eliminar columnas por rango y filas

Me pueden apoyar con macro para eliminar Columnas de acuerdo a los sig. Rangos

columnas B,C,D,E,F,H,I,J,K,L,M,N,O,P,Q,S,U,V,X,Y,Z,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AL,AM,AN,AQ,AR,AS,AU,AV,AW,AY,AZ,BA,BC hasta la BM. Ya que esos datos en esas columnas no las ocupo.

Y que elimine fila vacías de la fila "A"

En espera del apoyo

2 Respuestas

Respuesta
1

Me despista bastante la última frase de tu consulta, pero entiendo quieres eliminar una serie de columnas (las que indicas) enteras..

En ese caso esta macro te podría servir:

Sub ElimnarColumnas()
'Columnas a eliminar
matriz = Array("A", "D", "F")
nUltCol = Range("A1:K1").Columns.Count

For i = (nUltCol - 1) To 0 Step -1
For x = 0 To UBound(matriz)
NumCol = Cells(1, matriz(x)).Column
If i = NumCol Then
ActiveSheet.Columns(i).Delete Shift:=xlShiftToLeft
End If
Next x
Next i

End Sub

Espero te sirva...

OJO, la macro elimina la columna entera de las indicadas.

Saludos

P.D. Si te sirvió, por favor, no olvides valorar la respuesta.

Respuesta
1

H o l a:

Te anexo la macro

Sub EliminarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Range("AB:AB,AC:AC,AD:AD,AE:AE,AF:AF,AG:AG,AH:AH,AI:AI,AJ:AJ,AL:AL,AM:AM,AN:AN,AQ:AQ,AR:AR,AS:AS,AU:AU,AV:AV,AW:AW,AY:AY,AZ:AZ,BA:BA,BC:BM").Delete Shift:=xlToLeft
    Range("B:B,C:C,D:D,E:E,F:F,H:H,I:I,J:J,K:K,L:L,M:M,N:N,O:O,P:P,Q:Q,S:S,U:U,V:V,X:X,Y:Y,Z:Z").Delete Shift:=xlToLeft
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        If Cells(i, "A") = "" Then Rows(i).Delete
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Si tienes columnas seguidas, por ejemplo B,C,D,E,F pueden quedar en un solo rango:

B:F

Te anexo en la siguiente macro las columnas continuas en rangos.

Sub EliminarColumnas2()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Range("B:F,H:Q,S:S,U:V,X:Z,AB:AJ,AL:AN,AQ:AS,AU:AW,AY:AZ,BA:BA,BC:BM").Delete Shift:=xlToLeft
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        If Cells(i, "A") = "" Then Rows(i).Delete
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Si necesitas separar un rango, entonces te puedes guiar por la primera macro.


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas