Excel - Filtrar ListBox de un Userform por un parámetro.

 
Vista:
sin imagen de perfil

Filtrar ListBox de un Userform por un parámetro.

Publicado por Rafael (102 intervenciones) el 04/06/2024 10:15:49
En el ListBox1 del UserForm que he llamado "INGRESOS", presento, definidos por 19 columnas, los Ingresos Hospitalarios que están recogidos en la Hoja del mismo libro también llamada "INGRESOS".

En el mismo Userform, encima del ListBox he dispuesto un Combo llamado "Paciente", y contiguo a él un botón de comando en el que Al Hacer Clic sobre él pretendo se filtren los Ingresos presentados en el ListBox, relativos ÚNICAMENTE al paciente que he podido seleccionar en el Combo aludido.

He tratado de 'reacomodar' el sistema de filtrado que me funciona correctamente en otro .xlsm en el que filtro hasta por 7 parámetros, pero sin éxito.

El código que he pretendido reacomodar es este:

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
Dim HojaBase As Worksheet
    Dim Rango As Range
    Dim Columna As Integer
    Dim I As Integer
    Dim Filas As Integer
 
    Dim Filtro_1 As Boolean
 
   On Error GoTo ControladorDeErrores
 
    Set HojaBase = ThisWorkbook.Sheets("INGRESOS")
    Set Rango = HojaBase.Range("A1").CurrentRegion
 
    Me.ListBox1.Clear
    Filas = Rango.Rows.Count
 
    For I = 2 To Filas
        With Me.ListBox1
            ' ---&--- Filtro el Paciente:
            '''''''If UCase(Paciente) = UCase(HojaBase.Cells(I, 2).Value) Or UCase(Paciente) = UCase("Admin") Then
 
                Filtro_1 = IIf(Paciente.Value = Empty, True, VBA.LCase(HojaBase.Cells(I, 2).Value) Like "*" & VBA.LCase(Me.Paciente.Value) & "*")
 
                If Filtro_1 Then
                    .AddItem HojaBase.Cells(I, 2).Value
                    ''''''''.List(Me.ListBox1.ListCount - 1, 1) = Format(HojaBase.Cells(I, 2).Value, "dd/mm/yyyy")
 
                End If
            '''''''End If
        End With
        ''''Me.ListBox1.SetFocus
    Next I
    '''''Me.Registros.Value = Me.ListBox1.ListCount
    Exit Sub
 
ControladorDeErrores:
    MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "MiAplicaciónj"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder