Buenas noche,
Llevo unos días chocando con una dificultad que puede parecer sencilla.
Estoy tratando hacer un programa destinado a gestionar las inscripciones de una sala de deporte.
Las inscripciones se hacen desde una hoja ("Inscripciones"). A partir de la cual, se reparte las personas en el grupo que le corresponden. (Existe una hoja distinta por cada grupo).
Esta etapa la tengo controlada...
Me gustaría ahora ordenar alfabéticamente las listas después de cada inscripción.
A pesar de los posts editados en este forum y las búsquedas que realice en el net, no he conseguido adaptar y/o entender soluciones.
Es el objeto de mi visita aquí.
Gracias por vuestra atención.
Todas ideas, sugestiones, pistas serán las bien venidas.
CoOOrdialmente
Marc
[RESUELTO][Calc]Ordenar alfabéticamente
[RESUELTO][Calc]Ordenar alfabéticamente
- Adjuntos
-
- Ordenar alfabeticamente.ods
- (20.02 KiB) Descargado 249 veces
Última edición por markotxe el Mar May 26, 2020 1:29 am, editado 2 veces en total.
OpenOffice 4.1.5 CALC, Window10
- PepeOooSevilla
- Mensajes: 1480
- Registrado: Sab Abr 04, 2009 6:10 pm
- Ubicación: Sevilla (España)
Re: [Calc]Ordenar alfabéticamente
Hola.
En el módulo Module1 del archivo adjunto figura este código:
Al botón ORDENAR ALFABETICAMENTE de la hoja Inscripciones le he asignado la macro Main(). Haz pruebas y modifica a conveniencia.
Saludos cordiales.
En el módulo Module1 del archivo adjunto figura este código:
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Sub Main()
'Otros procesos antes de ordenar
Call OrdenarDatos("Lista")
Call OrdenarDatos("Lista2")
End Sub
Function UltimaFila(NombreHoja As String) As Long
Dim Hoja As Object
Dim Cursor As Object
Dim DireccionRango As New com.sun.star.table.CellRangeAddress
Hoja = ThisComponent.getSheets().getByName(NombreHoja)
Cursor = Hoja.createCursor()
With Cursor
.gotoEndOfUsedArea(False)
DireccionRango = .getRangeAddress()
End With
UltimaFila = DireccionRango.EndRow
End Function
Sub OrdenarDatos(NombreHoja As String)
Dim Hoja As Object
Dim Rango As Object
Dim CamposOrden(1) As New com.sun.star.util.SortField
Dim DescriptorOrden(1) As New com.sun.star.beans.PropertyValue
Hoja = ThisComponent.getSheets().getByName(NombreHoja)
'Rango de celdas a ordenar C5:Z#, siendo # = UltimaFila(NombreHoja)
Rango = Hoja.getCellRangeByPosition(2, 4, 25, UltimaFila(NombreHoja))
'APELLIDOS
CamposOrden(0).Field = 0
CamposOrden(0).SortAscending = True
CamposOrden(0).FieldType = com.sun.star.table.TableSortFieldType.ALPHANUMERIC
'NOMBRE
CamposOrden(1).Field = 1
CamposOrden(1).SortAscending = True
CamposOrden(1).FieldType = com.sun.star.table.TableSortFieldType.ALPHANUMERIC
DescriptorOrden(0).Name = "ContainsHeader"
DescriptorOrden(0).Value = True
DescriptorOrden(1).Name = "SortFields"
DescriptorOrden(1).Value = CamposOrden()
'Ordenamos con los parámetros establecidos
Rango.Sort(DescriptorOrden())
End Sub
Saludos cordiales.
- Adjuntos
-
- Ordenar alfabeticamente_markotxe.ods
- LibO Calc 6.3.6
- (32.23 KiB) Descargado 247 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.
Re: [RESUELTO][Calc]Ordenar alfabéticamente
Hola PepeOooSevilla, hola foro,
Genial!
He realizado una prueba rápida en el documento original y funciona muy bien. Toca ahora adaptar la solución al conjunto del archivo. Sera la parte, la mas divertida (empezando con una base solida).
Por lo tanto os dirijo un doble agradecimiento!
- Uno por la solución que me habéis facilitado.
- Dos por abrirme perspectivas de investigación. Todavía no estoy familiarizado con las funciones y me queda mucho por leer y aprender. Con este ejemplo, espero poder practicar y aprender divirtiéndome.
Muchas gracias !!!
CooOrdialmente
Marc
Genial!
He realizado una prueba rápida en el documento original y funciona muy bien. Toca ahora adaptar la solución al conjunto del archivo. Sera la parte, la mas divertida (empezando con una base solida).
Por lo tanto os dirijo un doble agradecimiento!
- Uno por la solución que me habéis facilitado.
- Dos por abrirme perspectivas de investigación. Todavía no estoy familiarizado con las funciones y me queda mucho por leer y aprender. Con este ejemplo, espero poder practicar y aprender divirtiéndome.
Muchas gracias !!!
CooOrdialmente
Marc
OpenOffice 4.1.5 CALC, Window10