ordenar hojas de excel por nombre

12/05/2006 - 10:00 por Darío | Informe spam
Buenas,

¿Sabeis si hay alguna manera de ordenar las hojas de Excel por nombre?

Vereis, lo que yo hago es renombrar todas mis hojas de excel de la siguiente
forma:

Hoja 1 -> 2345
Hoja 2 -> 0250
Hoja 3 -> 0500
Hoja 4 -> 1234

Y me gustaría poder ordenarlas de menor a mayor (o viceversa):

0250
0500
1234
2345

¿Alguien sabe si esto se puede hacer? ¿Podría hacerlo con mi Office 2000
Profesional?

Gracias y Saludos.

Preguntas similare

Leer las respuestas

#1 Darío
12/05/2006 - 10:28 | Informe spam
Encontre este codigo de macro, que supuestamente, hace eso, pero no sé como
usarlo ¿Alguien podría indicarme como lo uso?
"El orden que este codigo establece, es alfabetico
no tiene necesariamente que corresponderse con
el Indice de la hoja dentro del libro"Gracias.

Sub OrdenarHojas()
Dim lngHojas As Long
Dim i As Long
Dim j As Long

lngHojas = ActiveWorkbook.Sheets.Count

For i = 1 To lngHojas
For j = i To lngHojas
If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
End Sub


"Darío" escribió en el mensaje
news:O%
Buenas,

¿Sabeis si hay alguna manera de ordenar las hojas de Excel por nombre?

Vereis, lo que yo hago es renombrar todas mis hojas de excel de la


siguiente
forma:

Hoja 1 -> 2345
Hoja 2 -> 0250
Hoja 3 -> 0500
Hoja 4 -> 1234

Y me gustaría poder ordenarlas de menor a mayor (o viceversa):

0250
0500
1234
2345

¿Alguien sabe si esto se puede hacer? ¿Podría hacerlo con mi Office 2000
Profesional?

Gracias y Saludos.


Respuesta Responder a este mensaje
#2 Juan M
12/05/2006 - 10:54 | Informe spam
Hola Dario

para emplear ese codigo sigue los siguientes pasos
Comienza por rebajar tu nivel de seguridad a medio (si no lo tenias ya)
Herramientas>Macro>Seguridad
Inicia el editod de vb
presiona ALT+F11 o Herramientas>Mcro>Editor de VB
en el menu insetar del VBE selecciona modulo

ahora copia y pega el codigo que has encontrado

para ejecutarlo vuelve a excel y presiona ALT+F8
te aparecera un dialogo en el cual esta el nombre de tu macro (OrdenarHojas)
pulsa ejecutar

un saludo
juan

"Darío" escribió en el mensaje
news:
Encontre este codigo de macro, que supuestamente, hace eso, pero no sé
como
usarlo ¿Alguien podría indicarme como lo uso?
"El orden que este codigo establece, es alfabetico
no tiene necesariamente que corresponderse con
el Indice de la hoja dentro del libro"Gracias.

Sub OrdenarHojas()
Dim lngHojas As Long
Dim i As Long
Dim j As Long

lngHojas = ActiveWorkbook.Sheets.Count

For i = 1 To lngHojas
For j = i To lngHojas
If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
End Sub


"Darío" escribió en el mensaje
news:O%
Buenas,

¿Sabeis si hay alguna manera de ordenar las hojas de Excel por nombre?

Vereis, lo que yo hago es renombrar todas mis hojas de excel de la


siguiente
forma:

Hoja 1 -> 2345
Hoja 2 -> 0250
Hoja 3 -> 0500
Hoja 4 -> 1234

Y me gustaría poder ordenarlas de menor a mayor (o viceversa):

0250
0500
1234
2345

¿Alguien sabe si esto se puede hacer? ¿Podría hacerlo con mi Office 2000
Profesional?

Gracias y Saludos.






Respuesta Responder a este mensaje
#3 Darío
12/05/2006 - 11:02 | Informe spam
Muchas Gracias.
Funciona de cine. Ya lo importe y ahora lo voy a distribuir.
Saludos.

Lo que hice exactamente fue:

Sub OrdenarHojas()
Dim lngHojas As Long
Dim i As Long
Dim j As Long

lngHojas = ActiveWorkbook.Sheets.Count

For i = 1 To lngHojas
For j = i To lngHojas
If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
End Sub

Preparar:

1. Editor de Visual Basic
2. Herramientas -> Macros
3. Crear -> Copiar Codigo
4. Guardar.

Usar por Usuario:
1. Herramientas
2. Macro
3. Macros
4. Ejecutar



"Juan M" escribió en el mensaje
news:
Hola Dario

para emplear ese codigo sigue los siguientes pasos
Comienza por rebajar tu nivel de seguridad a medio (si no lo tenias ya)
Herramientas>Macro>Seguridad
Inicia el editod de vb
presiona ALT+F11 o Herramientas>Mcro>Editor de VB
en el menu insetar del VBE selecciona modulo

ahora copia y pega el codigo que has encontrado

para ejecutarlo vuelve a excel y presiona ALT+F8
te aparecera un dialogo en el cual esta el nombre de tu macro


(OrdenarHojas)
pulsa ejecutar

un saludo
juan

"Darío" escribió en el mensaje
news:
> Encontre este codigo de macro, que supuestamente, hace eso, pero no sé
> como
> usarlo ¿Alguien podría indicarme como lo uso?
> "El orden que este codigo establece, es alfabetico
> no tiene necesariamente que corresponderse con
> el Indice de la hoja dentro del libro"Gracias.
>
> Sub OrdenarHojas()
> Dim lngHojas As Long
> Dim i As Long
> Dim j As Long
>
> lngHojas = ActiveWorkbook.Sheets.Count
>
> For i = 1 To lngHojas
> For j = i To lngHojas
> If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
> Sheets(j).Move Before:=Sheets(i)
> End If
> Next j
> Next i
> End Sub
>
>
> "Darío" escribió en el mensaje
> news:O%
>> Buenas,
>>
>> ¿Sabeis si hay alguna manera de ordenar las hojas de Excel por nombre?
>>
>> Vereis, lo que yo hago es renombrar todas mis hojas de excel de la
> siguiente
>> forma:
>>
>> Hoja 1 -> 2345
>> Hoja 2 -> 0250
>> Hoja 3 -> 0500
>> Hoja 4 -> 1234
>>
>> Y me gustaría poder ordenarlas de menor a mayor (o viceversa):
>>
>> 0250
>> 0500
>> 1234
>> 2345
>>
>> ¿Alguien sabe si esto se puede hacer? ¿Podría hacerlo con mi Office


2000
>> Profesional?
>>
>> Gracias y Saludos.
>>
>>
>
>


Respuesta Responder a este mensaje
#4 Darío
12/05/2006 - 11:16 | Informe spam
a ver...ahora tengo un problemilla relacionado.
Importe el macro a un "OrdenarFollas.bas" , pues cada vez que quiero usar
ese macro me tengo que ir a:

1. Editor de Visual Basic (Alt + F11)
2. Importar Archivo.
3. Cerrar (Alt + Q).

4. Herramientas.
5. Macro.
6. Macros.
7. Seleccionar Macro.
8 Ejecutar.

¿No habría alguna forma de grabar el macro de forma que no tenga que
importarlo cada vez que quiero usarlo?
¿Alguna forma de solo hacer los pasos del 4 al 8?

Gracias.

"Darío" escribió en el mensaje
news:
Muchas Gracias.
Funciona de cine. Ya lo importe y ahora lo voy a distribuir.
Saludos.

Lo que hice exactamente fue:

Sub OrdenarHojas()
Dim lngHojas As Long
Dim i As Long
Dim j As Long

lngHojas = ActiveWorkbook.Sheets.Count

For i = 1 To lngHojas
For j = i To lngHojas
If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
End Sub

Preparar:

1. Editor de Visual Basic
2. Herramientas -> Macros
3. Crear -> Copiar Codigo
4. Guardar.

Usar por Usuario:
1. Herramientas
2. Macro
3. Macros
4. Ejecutar



"Juan M" escribió en el mensaje
news:
> Hola Dario
>
> para emplear ese codigo sigue los siguientes pasos
> Comienza por rebajar tu nivel de seguridad a medio (si no lo tenias ya)
> Herramientas>Macro>Seguridad
> Inicia el editod de vb
> presiona ALT+F11 o Herramientas>Mcro>Editor de VB
> en el menu insetar del VBE selecciona modulo
>
> ahora copia y pega el codigo que has encontrado
>
> para ejecutarlo vuelve a excel y presiona ALT+F8
> te aparecera un dialogo en el cual esta el nombre de tu macro
(OrdenarHojas)
> pulsa ejecutar
>
> un saludo
> juan
>
> "Darío" escribió en el mensaje
> news:
> > Encontre este codigo de macro, que supuestamente, hace eso, pero no sé
> > como
> > usarlo ¿Alguien podría indicarme como lo uso?
> > "El orden que este codigo establece, es alfabetico
> > no tiene necesariamente que corresponderse con
> > el Indice de la hoja dentro del libro"Gracias.
> >
> > Sub OrdenarHojas()
> > Dim lngHojas As Long
> > Dim i As Long
> > Dim j As Long
> >
> > lngHojas = ActiveWorkbook.Sheets.Count
> >
> > For i = 1 To lngHojas
> > For j = i To lngHojas
> > If LCase(Sheets(j).Name) < LCase(Sheets(i).Name) Then
> > Sheets(j).Move Before:=Sheets(i)
> > End If
> > Next j
> > Next i
> > End Sub
> >
> >
> > "Darío" escribió en el mensaje
> > news:O%
> >> Buenas,
> >>
> >> ¿Sabeis si hay alguna manera de ordenar las hojas de Excel por


nombre?
> >>
> >> Vereis, lo que yo hago es renombrar todas mis hojas de excel de la
> > siguiente
> >> forma:
> >>
> >> Hoja 1 -> 2345
> >> Hoja 2 -> 0250
> >> Hoja 3 -> 0500
> >> Hoja 4 -> 1234
> >>
> >> Y me gustaría poder ordenarlas de menor a mayor (o viceversa):
> >>
> >> 0250
> >> 0500
> >> 1234
> >> 2345
> >>
> >> ¿Alguien sabe si esto se puede hacer? ¿Podría hacerlo con mi Office
2000
> >> Profesional?
> >>
> >> Gracias y Saludos.
> >>
> >>
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Juan M
12/05/2006 - 13:02 | Informe spam
Hola Dario

tienes dos o tres opciones
1 guardar el codigo en el libro personal
si no tienes uno creado haz lo siguiente
-en el menu herramientas>macro>grabar macro
te preguntara donde lo quieres grabar elige el libro
personal.xls
-realiza un par de acciones ej cambia de color una celda y deten la
grabacion del macro
-ve al editor de vb (ALT + F11)
-si no tienes activado el explorador de proyectos (suele estar en la
parte superior izquierda) activalo en el menu ver>exploraador de proyectos o
CTRL+r
- en el explorador veras un arbol de proyectos donde aparece
vbaPROJECT (PERSONAL.XLS), expandelo y veras una carpeta que pone modulos,
haz doble click en el y veras el codigo de ese modulo
- puedes eliminar el que te habra grabado con anterioridad
- copia tu codigo
- desde ahora lo tendras disponible en todos tus proyectos,
accesible como hemos comentado
- el codigo te ordena las hojas del libro activo.
2 crear un complemento (*.xla) cargarlo en tu sistema (esta de momento se
me escapa) si tienes interes en ella indicalo y si no soy to otro lo mismo
te puede ayudar

3 tener un libro abierto donde tengas cargado el codigo y dede el libro que
quieras ejecutar seguir los pasos para ejecutar el codigo

Por cierto, cada vez que actuas con macros la opcion de deshacer deja de
funcionar

un saludo
juan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida