Macro para seleccionar más de una columna mediante un form que pregunte las columnas a eliminar.

Hola expertos.
Podrías por favor ayudarme. Necesito una macro para eliminar mas de una columna que yo pueda seleccionar mediante un cuadro de dialogo.
Hasta ahora puedo eliminar nada mas 1 columna mediante este código:
Sub borrar()
Dim operación As String
Dim fila As String
Worksheets("Datos1").Activate
Range("A1").Select
operación = InputBox("Ingrese la Columna a BORRAR")
Range(operación + "1").Select
Columns(operación).Select
Selection.Delete
Range("A1").Select
End Sub
De antemano muchas gracias.

1 respuesta

Respuesta
1

¿Quieres utilizar un userform para poner las columnas que quieres borrar?

¿O quieres seguir usando el inputbox?

¿Las columnas a borrar son continuas o pueden ser separadas?

Hola Experto.
Gracias por la pronta respuesta.


Seria genial seguir usando el inputbox en donde pudiera teclear separado por comas las columnas a eliminar. Pero ya sea por un inputbox o un userform que me permitiera hacerlo estaría muy bien.


Las columnas a eliminar son continuas y separadas. Se pueden presentar ambos casos.
Quedo atento a tus comentarios.

Saludos!

Te envío una macro, puedes capturar varias columnas separadas por comas, ejemplos:

a, b

e,ad,m

m,f,e

No importa el orden de las columnas, no importa si es una columna de una letra por ejemplo "m" o si la columna es de 2 letras por ejemplo "ad"

Tienes que poner todas las columnas, no importa si van separadas o continuas, si vas a borrar la e, la f y la g, tienes que poner

e,f,g

Sub borrar_columnas()
'por.dam
Dim letras As New Collection
Worksheets("Datos1").Activate
Set letras = Nothing
Set letrasordenadas = Nothing
columnas = InputBox("Ingrese la Columna o columnas a BORRAR, separadas por comas ")
columnas = Replace(columnas, " ", "")
ini = 1
For i = 1 To Len(columnas) + 1
    If Mid(columnas, i, 1) = "," Or Mid(columnas, i, 1) = "" Then
        fin = i - ini
        letras.Add Mid(columnas, ini, fin)
        ini = i + 1
    End If
Next
For Each letra In letras
    cadena = cadena & letra & ":" & letra & ","
Next
Range(Left(cadena, Len(cadena) - 1)).delete
End Sub

Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas