Buenas tardes,
Por favor, necesito ordenar una serie de hojas en Calc y ese orden tiene que ser numérico, sin tener en cuenta las dos primeras hojas del libro. Hay alguna manera?, si es así, cuáles son los pasos a seguir?
Muchas gracias
Ayuda con Calc, ordenar numéricamente hojas exc. 2 primeras
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Ayuda con Calc, ordenar numéricamente hojas exc. 2 primeras
OpenOffice 3.1 en Windows Vista
- PepeOooSevilla
- Mensajes: 1480
- Registrado: Sab Abr 04, 2009 6:10 pm
- Ubicación: Sevilla (España)
Re: Ayuda con Calc, ordenar numéricamente hojas exc. 2 prime
Hola.
Te damos la bienvenida al Foro y, por favor, no dejes de leer la Guía de supervivencia.
Tienes que dar más información:
* ¿Quieres ordenar de una sola vez todas las hojas excepto las dos primeras?
* ¿Todas las hojas excepto las dos primeras tienen la misma estructura?
* ¿Por qué columna (o campo) se ordenaría? ¿Es igual para todas o cambia según la hoja a ordenar?
* ...
¿Podrías subir un archivo de ejemplo? Si no sabes cómo subir un archivo, consulta Cómo adjuntar un archivo.
Ese archivo de ejemplo no tiene por qué ser "el archivo original", ni contener cientos de filas y columnas pero sí debe tener unos mínimos datos (ficticios, que este es un Foro público) con los que poder calcular y el "formato original" para saber cómo están distribuidos esos datos. Todo esto ayuda a los voluntarios que formamos este Foro para que podamos ofrecerte una mejor solución.
Saludos cordiales.
Te damos la bienvenida al Foro y, por favor, no dejes de leer la Guía de supervivencia.
Tienes que dar más información:
* ¿Quieres ordenar de una sola vez todas las hojas excepto las dos primeras?
* ¿Todas las hojas excepto las dos primeras tienen la misma estructura?
* ¿Por qué columna (o campo) se ordenaría? ¿Es igual para todas o cambia según la hoja a ordenar?
* ...
¿Podrías subir un archivo de ejemplo? Si no sabes cómo subir un archivo, consulta Cómo adjuntar un archivo.
Ese archivo de ejemplo no tiene por qué ser "el archivo original", ni contener cientos de filas y columnas pero sí debe tener unos mínimos datos (ficticios, que este es un Foro público) con los que poder calcular y el "formato original" para saber cómo están distribuidos esos datos. Todo esto ayuda a los voluntarios que formamos este Foro para que podamos ofrecerte una mejor solución.
Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Re: Ayuda con Calc, ordenar numéricamente hojas exc. 2 prime
Buenos días,
* Sí, la intención es ordenar de una sola vez todas las hojas excepto las dos primeras
* Todas las hojas excepto las dos primeras tienen la misma estructura y se deben de ordenar numéricamente, en orden descendente, las referencias de las hojas (cada pestaña), por ejemplo son: 205, 206, 208, y así sucesivamente
* Se deben de ordenar por número de hoja (exceptuando las dos primeras que deben de ir fijas) en orden descendente, por ejemplo: 210, 208, 206...
Muchas gracias
* Sí, la intención es ordenar de una sola vez todas las hojas excepto las dos primeras
* Todas las hojas excepto las dos primeras tienen la misma estructura y se deben de ordenar numéricamente, en orden descendente, las referencias de las hojas (cada pestaña), por ejemplo son: 205, 206, 208, y así sucesivamente
* Se deben de ordenar por número de hoja (exceptuando las dos primeras que deben de ir fijas) en orden descendente, por ejemplo: 210, 208, 206...
Muchas gracias
OpenOffice 3.1 en Windows Vista
- PepeOooSevilla
- Mensajes: 1480
- Registrado: Sab Abr 04, 2009 6:10 pm
- Ubicación: Sevilla (España)
Re: Ayuda con Calc, ordenar numéricamente hojas exc. 2 prime
Hola.
Adjunto un ejemplo con una de las posibles soluciones. Este es el código:
Las dos primeras hojas no se mueven de sitio, el resto se ordena de mayor a menor (orden descendente). Se presupone que los nombres de las hojas son números. Las dos primeras no se tienen en cuenta. Para ordenar las hojas pincha en Herramientas > Macros > Ejecutar macro... y selecciona la macro OrdenarHojas.
Las macros no son fáciles pero si te interesa la programación para OpenOffice/LibreOffice tienes que leer y estudiar el libro Aprendiendo OOo Basic de nuestro compañero mauricio. También lo puedes consultar aquí: Guía de introducción al uso de Apache OpenOffice > Temas Avanzados > Macros > StarBasic.
Saludos cordiales.
Adjunto un ejemplo con una de las posibles soluciones. Este es el código:
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Sub OrdenarHojas()
Dim DocCalc As Object
Dim NumHojas As Integer
Dim Contador As Integer
Dim NombreHojasEnNumero() As Variant
DocCalc = ThisComponent.getSheets()
With DocCalc
NumHojas = .Count
' Las 2 primeras no se cuentan. Se empieza por 0
Redim NombreHojasEnNumero(NumHojas-3)
For Contador = 2 To NumHojas-1
NombreHojasEnNumero(Contador-2) = Val(.getByIndex(Contador).getName())
Next Contador
'MsgBox NumHojas
'MsgBox Join(NombreHojasEnNumero(), Chr(10))
Call OrdenarVectorNumerico(NombreHojasEnNumero())
'MsgBox Join(NombreHojasEnNumero(), Chr(10))
For Contador = 0 to UBound(NombreHojasEnNumero())
.moveByName(CStr(NombreHojasEnNumero(Contador)), Contador+2)
Next Contador
End With
End Sub
Sub OrdenarVectorNumerico(Vector() As Variant)
Dim iMin As Long
Dim iMax As Long
Dim Vectemp As Long
Dim Pos As Long
Dim i As Long
iMin = LBound(Vector())
iMax = UBound(Vector())
Do While iMax > iMin
Pos = iMin
For i = iMin To iMax - 1
If Vector(i) < Vector(i + 1) Then 'orden descendente
Vectemp = Vector(i + 1)
Vector(i + 1) = Vector(i)
Vector(i) = Vectemp
Pos = i
End If
Next i
iMax = Pos
Loop
End Sub
Las macros no son fáciles pero si te interesa la programación para OpenOffice/LibreOffice tienes que leer y estudiar el libro Aprendiendo OOo Basic de nuestro compañero mauricio. También lo puedes consultar aquí: Guía de introducción al uso de Apache OpenOffice > Temas Avanzados > Macros > StarBasic.
Saludos cordiales.
- Adjuntos
-
- FORO_CALC_ORDENAR_HOJAS_DESCEND.ods
- LibO Calc 6.3.6
- (9.88 KiB) Descargado 170 veces
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.