Macro para eliminar columnas

Tengo un archivo con muchas columnas, quisiera hacer una macro que me permita eligir las columnas a eliminar, por ahora solo tengo esta macro, que solo me deja eliminar una columna a la vez.

Sub eliminarcolumna()
Dim operacion As String
Dim fila As String
operacion = InputBox("Ingrese la columna que desea borrar")
Range(operacion + "1").Select
Columns(operacion).Select
Selection.Delete
Range("A1").Select
End Sub

Quisiera saber si existe la posibilidad de cargar en un combobox las columnas y desde ahi ir eliminando las que no quiera ya que de 100 columnas que tiene el archivo necesito eliminar 30, o igual también con un listbox y de ahi seleccionar múltiples columnas.

Porque con el código que tengo solo me deja eliminar una y listo, o también poder poner varias columnas ahi, y eliminarlas de un jalón todas.

1 Respuesta

Respuesta
1

Te la desarrollé con una lista en la Hoja5 a partir de A7 (pode´s ajustar estas referencias)

Se supone que allí estarán las letras de las col. Entonces se arma una cadena y se eliminan todas de 1 vez

Olvidé la rutina ;)

Sub ELIMINA_COL()
'x Elsamatilde
'elimino col de la lista ubicada en Hoja5, a partir de A7
Sheets("Hoja5").Select
rgo = "A7:A" & Range("A65536").End(xlUp).Row
For Each cd In Range(rgo)
cadena = cadena & cd & ":" & cd & ","
Next
'quito la última coma
cadena = Left(cadena, Len(cadena) - 1)
Range(cadena).Select
 Selection.Delete Shift:=xlToLeft
Range("A1").Select
End Sub

PD) Es importante que tratándose de 'eliminar' datos realices una copia previa.

Elsa es una excelente solución, solo que busco algo mas practico, ya que tengo antes de ese paso una serie de pasos ya programados, algo que se me había ocurrido es tener un form en un combobox el cual ya tengo armando solo me falta la programación, de que se carguen automaticament las letras de las columnas ocupadas... es decir si tengo de la A hasta la BC, que en el combobox me permita seleccionar... las columnas con algún botón de eliminar y listo.

A
B
C
D
....

BC

Ojala se pueda implementar mi idea... saludos cordiales.

Como no me queda muy en claro si ya tenés las col seleccionadas o no (*) te paso algunas instrucciones para que puedas utilizar:

http://aplicaexcel.galeon.com/macros.htm</address>

Esta vez no la olvidé... no sé qué pasa en este sitio.

Aquí van las instrucciones:

- Para obtener el total de la selección:

Label1.Caption = Selection.Address(False, False)

_ Para seleccionar las columnas enteras de las celdas que al momento de ejecutar tu rutina ya están seleccionadas:

Selection.EntireColumn.Select

'y aquí debes agregar la que elimina

Selection.Delete Shift:=xlToLeft

- Para llenar un combo con las celdas seleccionadas:

For Each cd In Range(Selection.Address(False, False))
ComboBox1.AddItem cd.Address(False, False)
Next cd

Me parece innecesario abrir un UF solo para esto pero aquí están las instrucciones. REcordá de que debes eliminar a todas juntas para que no cambien de posición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas