Ordenar datos en una excel

Paso tiempo y espero que estés bien.

Quisiera solicitarte por favor y en cuanto puedas, un código que haga lo siguiente (prepare uno y es demasiado elemental y aparatoso lo que hace más lenta aun mi planilla general):

  1. Eliminar filas 1 a 8 (encabezados)
  2. Eliminar las filas cuyas celdas en correspondencia con la col “articulo” estén vacías
  3. Descombinar celdas
  4. Eliminar columnas de A a la D; G; de J a la O
  5. Poner como numero la col “articulo”
  6. Ordenar los datos de menor a mayor de col “articulo”
  7. Renombrar la hoja como “5100”

Un abrazo y desde ya

1 respuesta

Respuesta
4

Te anexo la macro

Sub Ordenar_Datos()
'Por.Dante Amor
    '
    Sheets(1).Select
    Application.ScreenUpdating = False
    'Descombinar celdas
    Cells.UnMerge
    'Poner como numero la col “articulo”
    Range("D3") = 1
    Range("D3").Copy
    u = Range("E" & Rows.Count).End(xlUp).Row
    Range("E10:E" & u).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
    'Eliminar encabezado
    Rows("1:8").Delete
    'Borrar filas vacías
    For i = u To 1 Step -1
        If Cells(i, "E") = "" Or Cells(i, "E") = 0 Then
            Rows(i).Delete
        End If
    Next
    'Borrar columnas
    Columns("J:O").Delete
    Columns("G:G").Delete
    Columns("A:D").Delete
    'Ordenar
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("A2:A" & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range("A1:D" & u)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    '
    ActiveSheet.Name = "5100"
    Range("A1").Select
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas