ordenar hojas alfabéticamente

05/10/2007 - 23:09 por Sergio | Informe spam
Por favor, cómo se pueden ordenar las hojas de un libro alfabéticamente?
Tengo un libro con un montón de hojas con nombres de personas y quisiera que
se ordenaran alfabéticamente y automáticamente por el nombre.
Existe alguna función que me permita hacer eso?
 

Leer las respuestas

#1 Héctor Miguel
05/10/2007 - 23:17 | Informe spam
hola, Sergio !

... como se pueden ordenar las hojas de un libro alfabeticamente?...



usando codigo [o macros]...

- abre el editor de vba atajo de teclado = {Alt}+{F11}
- inserta un modulo estandar [menu] insertar / modulo
- copia/pega alguna de las opciones de macro al final del presente
- cierra el editor de vba y de regreso en excel...
- pulsa {Alt}+{F8} para seleccionar el nombre de la macro y la ejecutas

saludos,
hector.

op1: no importa si son [may/min]usculas

Sub Ordenar_hojas()
Dim x As String, n As Integer, a As Integer, b As Integer
x = IIf(MsgBox("Ordenar en descendente ?", vbYesNo, "") = vbYes, ">", "<")
With ActiveWorkbook.Worksheets
For n = 1 To .Count
b = n
For a = n + 1 To .Count
If Evaluate("""" & .Item(a).Name & """" & x & """" & .Item(b).Name & """") Then b = a
Next
If b <> n Then .Item(b).Move .Item(n)
Next
End With
End Sub

op2: SI se distingue entre [may/min]usculas

Sub Ordenar_hojas()
Dim Sig As Integer, Ant As Integer, Post As Integer, Desc As Boolean
Desc = MsgBox("Ordenar en descendente ?", vbYesNo, "") = vbYes
With ActiveWorkbook.Worksheets
For Sig = 1 To .Count
Post = Sig
For Ant = Sig + 1 To .Count
If Desc Then
If .Item(Ant).Name > .Item(Post).Name Then Post = Ant
Else
If .Item(Ant).Name < .Item(Post).Name Then Post = Ant
End If
Next
If Post <> Sig Then .Item(Post).Move .Item(Sig)
Next
End With
End Sub

Preguntas similares