Como ordenar un rango después de haber modificado o eliminado un registro que se encuentre en el mediante un listbox.

(Para Elsa)

Hola Elsa:

Me gustaría que me ayudaras a ordenar los rangos de mi proyecto cuando estos sean modificados o algún ítem sea eliminado.

Comentarte que los datos del rango se cargan en listbox desde un formulario y en este formulario tiene los botones de eliminar y modificar;

-Cuando se elige un registro del listbox y se pulsa modificar este botón llaman a un formulario en el cual se cargan los datos que se han seleccionado y estos se pueden modificar, y se modifican en el rango donde se encuentran.

-Cuando se pulsa el botón eliminar este registro que se seleccione se elimina del rango donde se encuentra.(Este código todavía lo tengo que hacer)

1 respuesta

Respuesta
2

Tanto al Modificar como al Eliminar, debes llamar a la misma macro que coloqué en un módulo con la instrucción : Call OrdenaTablitas que irá justo antes del mensaje.

Sub OrdenaTablitas()
'x Elsamatilde
'colx es variable pública por lo que puedo utilizarla en la macro
Dim filfin As Long
'busco el fin de rango hacia abajo
If Cells(4, colx) <> "" Then filfin = Cells(3, colx).End(xlDown).Row
'si solo hay 1 dato no se ordena la tabla
If filfin < 4 Then Exit Sub
Range(Cells(3, colx), Cells(filfin, colx + 3)).Select
    ActiveWorkbook.Worksheets("CARGA DE DATOS").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("CARGA DE DATOS").Sort.SortFields.Add Key:=Range(Cells(4, colx), Cells(filfin, colx)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("CARGA DE DATOS").Sort
        .SetRange Range(Cells(3, colx), Cells(filfin, colx + 3))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Cells(3, colx).Select
End Sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas