. 17.01.17 #VBA eliminar columnas por condición
Buenas noches, Juan Fernando
Desde luego, hay diversas formas de resolverlo.
Ciñéndome a lo que solicitas, la siguiente rutina cumple el objetivo.
Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:
Sub ElimColum()
'---- Variables modificables ----
'=== JUAN FERNANDO, modifica estos datos de acuerdo a tu proyecto:
CONDICION = "Palabra" 'reemplazar por la palabra que determina si se elimina la columna o no
FilaObj = 2 'fila de la página donde buscar la palabra clave
'---- fin Variables
'
'---- inicio de rutina:
'
CantCol = ActiveSheet.UsedRange.Columns.Count
CONDICION = UCase(CONDICION)
Application.ScreenUpdating = False
For LaColumna = CantCol To 1 Step -1
'test = Cells(FilaObj, LaColumna).Value
If Trim(UCase(ActiveSheet.Cells(FilaObj, LaColumna).Value)) = CONDICION Then
ActiveSheet.Cells(FilaObj, LaColumna).EntireColumn.Delete
cont = cont + 1
End If
Next
ElMensaje = IIf(cont = 0, "NO SE ELIMINO COLUMNA ALGUNA, porque" & Chr(10) & "no se encontró " & CONDICION & " en el rango.", "Se eliminaron: " & cont & " columna" & IIf(cont > 1, "s", ""))
TipoMens = IIf(cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(cont = 0, "NO SE HIZO NADA", "TERMINADO!")
Application.ScreenUpdating = True
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub
Nota que, al principio del código, hay unas variables -explicadas- para que lo adaptes a tu archivo.
.