.
En este sitio web hay varios post que tratan sobre como ordenar datos ordenar datos por algún criterio y de esta manera contar con un cierto orden para poder trabajar con ellos, esta macro de Excel o procedimiento de VBA un poco sofisticada, lo que hace es determinar el rango a ordenar automáticamente luego de ello aplica un criterio de ordenación personal, este criterio se logra posicionándose en la celda sobre la cual se requiere la ordenación de datos.
Si estás viendo este ejemplo quizás te sirvan los presentados anteriormente como ordenar datos e insertar filas mediante macro de VBA, en ese ejemplo se insertan filas entre cada registro de proveedor y se hace una suma totalizada por proveedor, a su vez se ordena por el criterio proveedor; un poco más avanzado es el ejemplo donde se ordena automáticamente pero en base a varios criterios, a su vez se ordena en forma descendente y no ascendente que es la forma por defecto; también se puede consultar userform para ordenar datos que tiene combobox que permite seleccionar el dato por el cual ordenar, también se presentó una versión que ordena datos en base a varias columnas.
Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Sub OrdenaCriterioPersonalizado()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim uc, wc, r, r1, b, mc, mc1, pf, uf As String
‘determines last row with data
b = ActiveSheet.Name
mc = ActiveCell.Text
mc1 = ActiveCell.Address
pf = 2
uf = Sheets(b).Range(«A» & Rows.Count).End(xlUp).Row
uc = Sheets(b).Cells(1, Columns.Count).End(xlToLeft).Address
pc = Sheets(b).Cells(1, Columns.Count).End(xlToLeft).End(xlToLeft).Address
wc = Mid(uc, InStr(uc, «$») + 1, InStr(2, uc, «$») – 2)
wc1 = Mid(pc, InStr(pc, «$») + 1, InStr(2, pc, «$») – 2)
wc2 = Mid(mc1, InStr(mc1, «$») + 1, InStr(2, mc1, «$») – 2)
r = wc2 & pf & «:» & wc2 & uf
r1 = wc1 & pf & «:» & wc & uf
‘sorts the data
ActiveWorkbook.Worksheets(b).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(b).Sort.SortFields.Add Key:=Range(r) _
, SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=(mc), DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(b).Sort
.SetRange Range(r1)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Otros post de utilidad:
- Recuperar password de hoja bloqueada
- Función BUSCARV
- Función BUSCARH
- Función SI
- Abre explorador de archivo de Windows e inserta foto
- Abre explorador de archivo de Windows
- Combobox suma datos repetidos
- Busca un dato en todas las hojas de excel
- Combobox incrustado en Excel
- Formulario para insertar datos en hoja de excel
- Formulario de alera y envío de mail
- Tutoriales sobre VBA
- Llenar combobox y buscar datos
- Mensaje de Alerta y envío de mail con Excel
- Combobox que lista hojas de excel y las selecciona
- Busca un dato en todas las hojas de excel
.
If this post was helpful
INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends