Saltar al contenido

Ordenar por BORDES

publicado

Hola

No recuerdo haber visto algo similar por el foro, sobre como ordenar una BD segun el "Borde" de sus celdas/filas, pues a raiz de un problema sucitado en el foro de "GALI", es que se me ocurrio hacerlo con macros, sabemos que Excel al momento de ordenar BD nos lleva consigo el formato de las celdas, excepto los "bordes!" pues estos ignoran el SORT/ORDENADO, he tratado de burlar un poco a Excel por medio de VBA para lograr el efecto deseado, espero se comprenda el objetivo y sea de utilidad

En resumen como "ordenar una BD pero que lleve de una vez los bordes de sus celas"? y para que se entienda un poco mas, ordenen la BD manualmente y notaran lo que comenté arriba...

Macro:

Sub ordenarporbordes()
Dim uf As Long, contador As Long, celda As Range
Application.ScreenUpdating = False
uf = Range("A" & Rows.Count).End(xlUp).Row
For Each celda In Range("A3:A" & uf)
Rem Range(Range("A" & celda.Row), Range("D" & celda.Row)).Borders.LineStyle
If Cells(celda.Row, "A").Borders(xlEdgeLeft).LineStyle > 0 Then
contador = contador + 1
Cells(celda.Row, "E") = contador + Cells(celda.Row, "D")
End If
Next
With Range("A3").CurrentRegion
.Sort Range("E3"), xlAscending 'xlDescending
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
For Each celda In Range("A3:A" & uf)
If Cells(celda.Row, "E") > 0 Then
Range(Cells(celda.Row, "A"), Cells(celda.Row, "D")).BorderAround xlContinuous, xlMedium
End If
Next
Columns("E:E").ClearContents
Application.ScreenUpdating = True
End Sub[/PHP]

[color=#a9a9a9][b][i]Pd: Macro no creas que me he olvidado de las formulas, asi que no te la creas del todo jeje!:)[/i][/b][/color]

Saludos desde Honduras

Ordenar segun bordes.zip

Featured Replies

publicado

jeje,...veo que la luz empieza a verse al final del túnel,.... ¡¡¡ Ya tenemos otro macroconverso !!!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.