
Ordenar los resultados de un listbox por la fecha desde la mas reciente a la mas antigua
Publicado por Jorge (39 intervenciones) el 09/08/2021 16:08:11
Buenos días, tengo una pequeña traba, tengo un formulario donde ListBox2 me muestra todos los registros de mi base de datos al iniciar el formulario. Al ingresar una cédula registrada y presionar "intro" me muestra todos los registros que hayan en mi base de datos correspondientes a la cédula ingresada. Hasta ese momento todo perfecto, lo que quiero que suceda es que los registros referentes a la cédula ingresada me muestre los resultados en orden descendente de acuerdo a la fecha (desde la mas reciente a la mas antigua). Dejo aquí una imagen del formulario y el código que uso para que al momento de ingresar la cédula y presionar "intro" el ListBox2 me muestre los resultados correspondientes a la cédula.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
'
'Código para buscar y captar los datos del involucrado al presionar la tecla "INTRO" de acuerdo a la cédula
'
Private Sub cedula_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer): On Error Resume Next
Dim FILA As Long, DATAPAD As Long, i As Long
FILA = Hoja3.Range("A" & Rows.Count).End(xlUp).Row
DATAPAD = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
ListBox2.Clear
If KeyCode = 13 Then
'Función BUSCARV al VLookup:
With WorksheetFunction
siglas = .VLookup(Val(cedula), Hoja3.Range("A2:E" & FILA), 2, 0)
involucrado = .VLookup(Val(cedula), Hoja3.Range("A2:E" & FILA), 3, 0)
unidad = .VLookup(Val(cedula), Hoja3.Range("A2:E" & FILA), 4, 0)
estatus = .VLookup(Val(cedula), Hoja3.Range("A2:H" & FILA), 5, 0)
'Busca alguna coincidencia en DATAPAD que facilite el autollenado de datos
graduacion = .VLookup(Val(cedula), Hoja1.Range("B2:H" & DATAPAD), 5, 0)
instituto = .VLookup(Val(cedula), Hoja1.Range("B2:H" & DATAPAD), 6, 0)
promocion = .VLookup(Val(cedula), Hoja1.Range("B2:H" & DATAPAD), 7, 0)
foto.Picture = LoadPicture(.VLookup(Val(cedula), Hoja1.Range("B2:AI" & DATAPAD), 34, 0))
End With
'End If
For i = 2 To DATAPAD + 1
If UCase(Hoja1.Cells(i, 2)) Like "*" & UCase(cedula) & "*" Then
With ListBox2
.AddItem
.List(.ListCount - 1, 0) = Hoja1.Cells(i, 1) 'ID
.List(.ListCount - 1, 1) = Hoja1.Cells(i, 18) 'Tipo de Informe
If Hoja1.Cells(i, 21) = "" Then
.List(.ListCount - 1, 2) = Hoja1.Cells(i, 19) & " " & Hoja1.Cells(i, 20) 'Número de Informe
Else
.List(.ListCount - 1, 2) = Hoja1.Cells(i, 21) 'Nro. Oficio (Breve o Nota Informativa)
End If
.List(.ListCount - 1, 3) = Hoja1.Cells(i, 24) 'Fecha de emisión por la cual tiene que ordenarse
.List(.ListCount - 1, 4) = Hoja1.Cells(i, 14) 'Causa
.List(.ListCount - 1, 5) = Hoja1.Cells(i, 34) 'Decision
End With
End If
Next i
End If
End Sub
Valora esta pregunta


0