Boton delete para eliminar filas seleccionadas

Me pueden dar una mano con algo seguro simple para ustedes, necesito un botón que me permita de una lista de datos en Excel eliminar una o varias Filas, al presionar el botón me debería consultar que Fila deseo eliminar y dar la opcion de colocar varias Filas con comas o punto y coma.-

Ejemplo en Hoja Excel

BOTÓN DELETE

Ventana

Que Fila/s desea Eliminar: 2; 25; 56 ............

ACEPTAR

1 Respuesta

Respuesta
2

H o l a:

Te anexo el código para eliminar filas, cuando lo ejecutes captura los números de fila a eliminar separados por ; (punto y coma).

Pon el siguiente código en un módulo:

Dim valores As New Collection
'
Sub EliminarFilas()
'Por.Dante Amor
    Set valores = Nothing
    filas = InputBox("Qué Fila/s desea Eliminar, ejemplo: 2; 25; 56 ", "ELIMINAR FILAS", "6;4")
    If filas = "" Or filas = False Then Exit Sub
    '
    res = ordenar(filas)
    MsgBox res, vbInformation, "ELIMINAR FILAS"
    Set valores = Nothing
End Sub
'
Function ordenar(filas)
'Por Dante Amor
    numeros = Split(filas, ";")
    lnum = UBound(numeros)
    lunum = LBound(numeros)
    For i = 0 To UBound(numeros)
        If IsNumeric(numeros(i)) And numeros(i) > 0 And numeros(i) < Rows.Count Then
            Call agregar(Val(numeros(i)))
        Else
            ordenar = "La lista capturada no contiene números válidos: " & filas
            Exit Function
        End If
    Next
    '
    For i = valores.Count To 1 Step -1
        numfila = valores(i)
        Rows(numfila).Delete
    Next
    ordenar = "Filas elimiminadas: " & filas
End Function
'
Sub agregar(valor)
'por.Dante Amor
    For i = 1 To valores.Count
        If valores(i) = valor Then Exit Sub
        If valores(i) > valor Then
            valores.Add valor, Before:=i
            Exit Sub
        End If
    Next
    valores.Add valor 'Es mayor lo agrega al final
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia todo el código.
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: EliminarFilas
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.


':)
':)

H o l a:

Considera el siguiente código, ya que el anterior te aparece por default el texto "6;4".

Dim valores As New Collection
'
Sub EliminarFilas()
'Por.Dante Amor
    Set valores = Nothing
    filas = InputBox("Qué Fila/s desea Eliminar, ejemplo: 2; 25; 56 ", "ELIMINAR FILAS")
    If filas = "" Or filas = False Then Exit Sub
    '
    res = Ordenar(filas)
    MsgBox res, vbInformation, "ELIMINAR FILAS"
    Set valores = Nothing
End Sub
'
Function Ordenar(filas)
'Por Dante Amor
    numeros = Split(filas, ";")
    lnum = UBound(numeros)
    lunum = LBound(numeros)
    For i = 0 To UBound(numeros)
        If IsNumeric(numeros(i)) And numeros(i) > 0 And numeros(i) < Rows.Count Then
            Call Agregar(Val(numeros(i)))
        Else
            Ordenar = "La lista capturada no contiene números válidos: " & filas
            Exit Function
        End If
    Next
    '
    For i = valores.Count To 1 Step -1
        numfila = valores(i)
        Rows(numfila).Delete
    Next
    Ordenar = "Filas elimiminadas: " & filas
End Function
'
Sub Agregar(valor)
'por.Dante Amor
    For i = 1 To valores.Count
        If valores(i) = valor Then Exit Sub
        If valores(i) > valor Then
            valores.Add valor, Before:=i
            Exit Sub
        End If
    Next
    valores.Add valor 'Es mayor lo agrega al final
End Sub

Muchas gracias por la pronta respuesta, me sale la ventana donde me pide el numero a eliminar pero al presionar Aceptar me da error

Sub Agregar(valor)

For i = 1 To valores.Count
If valores(i) = valor Then Exit Sub
If valores(i) > valor Then
valores.Add valor, Before:=i
Exit Sub
End If
Next
valores.Add valor 'Es mayor lo agrega al final

End Sub

¿Qué mensaje de error te envía?

¿Qué datos pusiste?

sale la ventana donde dice que fila eliminar puse un numero, di aceptar y me sale otra ventana que dice... se ha producido el error "424" en tiempo de ejecución: se requiere un objeto

puse depurar y me muestra en amarillo lo que arriba describo 

¿Copiaste la macro completa?

Revisa que la hayas copiado esta línea al principio de todo el código:

Dim valores As New Collection

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas