Visual Basic para Aplicaciones - Filtrar hoja pero un item sin repeticiones

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 05/09/2019 23:30:15
Hola, buenas.
Y otra duda, mas.

Soy pesado, lo se...Pero GRACIAS anticipadas a todos lo expertos que ayudais desinteresadamente. !!!! GRACIAS!!!

Ahora al lio.

En mi form de entradas, coloque un codigo que me facilito el compañero MIGUEL, el cual funciona perfecto ( pero no se si para lo que necesito servirá).

Este es el codigo adapatado a mi nuevo form:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Private Sub txt_buscar_Change()
 
    Dim ultfila As Long
    Dim nomb As String
    Dim f As Long
    Dim y As Long
 
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
 
    ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
    f = 2
    y = 0
    Do While f <> ultfila + 1
 
        nomb = Sheets("ENTRADAS").Range("K" & f)
 
        If UCase(nomb) Like "*" & UCase(Me.txt_buscar) & "*" Then
            Me.ListBox1.AddItem
            Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
            Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
            Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
            Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
            Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
            Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
            f = f + 1
            y = y + 1
            Label12 = ListBox1.ListCount & " entradas de material"
        Else
            f = f + 1
        End If
    Loop
End Sub
 
Private Sub lb_volver_Click()
Unload Me
End Sub
 
Private Sub ListBox1_Click()
 
End Sub
 
 
 
''' BLOQUEAMOS LA X DEL FORM
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode <> vbFormControlMenu Then
            Cancel = 0
 
        Else
            Cancel = 1
            MsgBox "Usa el botón SALIR para cerrar el programa.", vbCritical, "CONTROL DE ALMACÉN"
    End If
End Sub
 
Private Sub UserForm_Initialize()
 
'Indicamos el número de columnas que tendrá el listbox
    Me.ListBox1.ColumnCount = 6
'Definimos tamaño de los espacios
    Me.ListBox1.ColumnWidths = "70 pt;70 pt;70 pt;70 pt;150 pt;70 pt"
'Cargamos listbox
 
    Dim ultfila As Long
    Dim f As Long
    Dim y As Long
 
 
    ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
    f = 2
    y = 0
    Do While f <> ultfila + 1
        Me.ListBox1.AddItem
        Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
        Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
        Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
        Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
        Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
        Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
        f = f + 1
        y = y + 1
    Loop
    Label12 = ListBox1.ListCount & " entradas de material"
    txt_buscar.SetFocus


Quisiera que solo filtrara una linea de cada compra.
En este caso, tengo 5 entradas de material (3 compras, 1 devolucion y 1 consolidacion de stock).
Necesito que el listbox filtre un item por cada entrada, da igual que una entrada tenga 1 linea, 4 o 15.

Dejo un archivo. Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por MIGUEL (121 intervenciones) el 06/09/2019 19:20:34
Buenas fjpg

Te dejo la macro y el archivo.

Te mostrara solo una linea de cada entrada, no se si requieras que te muestre una linea mas si el numero de compra es diferente o si el numero de devolucion sea diferente o el numero de consolidado, la macro te mostrara una linea de cada compra del Prov/Cil buscado, si no es lo que requieres puedes quitar las lineas marcadas.

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Private Sub txt_buscar_Change()
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
            If UCase(nomb) Like "*" & UCase(Me.txt_buscar) & "*" Then
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 4) Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
                    Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label12 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
            Else
                f = f + 1
            End If
        Loop
    Else
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            Me.ListBox1.AddItem
            Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
            Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
            Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
            Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
            Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
            Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
            f = f + 1
            y = y + 1
        Loop
    End If
End Sub

Espero te sirva

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 06/09/2019 23:55:32
Haciendo la busqueda funciona perfecto.. busco por cliente/proveedor. PERFECTO!!!

Pero se me olvido comentar, para que al iniciar el form, ya solo cargue un item por cada entrada.... Intenté adaptar ese codigo que me mandaste, pero no consigo hacerlo funcionar..
Alguna ayuda!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por MIGUEL (121 intervenciones) el 07/09/2019 01:11:46
Te dejo las macros

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
51
52
53
54
Private Sub txt_buscar_Change()
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
            If UCase(nomb) Like "*" & UCase(Me.txt_buscar) & "*" Then
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 4) Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
                    Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label12 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
            Else
                f = f + 1
            End If
        Loop
    Else
        Call UserForm_Initialize
    End If
End Sub

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
51
52
53
54
55
56
Private Sub UserForm_Initialize()
 
'Indicamos el número de columnas que tendrá el listbox
    Me.ListBox1.ColumnCount = 6
'Definimos tamaño de los espacios
    Me.ListBox1.ColumnWidths = "70 pt;70 pt;70 pt;70 pt;150 pt;70 pt"
'Cargamos listbox
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    'If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
 
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 4) Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
                    Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label12 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
        Loop
    Label12 = ListBox1.ListCount & " entradas de material"
    txt_buscar.SetFocus
End Sub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 07/09/2019 11:39:41
OLEEEE!!!!

Funciona perfect!!!! GRACIAS!!!!

MIGUEL, esta tarde una birra a tu salud!!! o dos, o tres!!!

GRACIAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 30/09/2019 20:59:54
Hola de nuevo.

Este codigo lo he adaptado a varios forms.

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Private Sub txt_buscar_Change()
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
            If UCase(nomb) Like "*" & UCase(Me.txt_buscar) & "*" Then
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 2) Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("U" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label2 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
            Else
                f = f + 1
            End If
        Loop
    Else
        Call UserForm_Initialize
    End If
End Sub
 
Private Sub UserForm_Initialize()
 
'Indicamos el número de columnas que tendrá el listbox
    Me.ListBox1.ColumnCount = 4
'Definimos tamaño de los espacios
    Me.ListBox1.ColumnWidths = "70 pt;70 pt;150 pt;70 pt"
'Cargamos listbox
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    'If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
 
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 2) Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("U" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label2 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
        Loop
    Label2 = ListBox1.ListCount & " entradas de material"
    txt_buscar.SetFocus
End Sub


Este codigo lo tengo en frm_compras.
Necesito que solo muestres los datos donde la Columna C (Palabra "Compra") o Columna D ( No. Compra) este escrita.

En otros forms seran las columnas "E"/"F" o "H"/"I".

Alguna ayuda??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por MIGUEL (121 intervenciones) el 01/10/2019 06:10:42
Buenas fjpg

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
51
52
53
54
55
56
57
58
Private Sub UserForm_Initialize()
 
'Indicamos el número de columnas que tendrá el listbox
    Me.ListBox1.ColumnCount = 6
'Definimos tamaño de los espacios
    Me.ListBox1.ColumnWidths = "70 pt;70 pt;70 pt;70 pt;150 pt;70 pt"
'Cargamos listbox
 
    Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    'If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("C" & f)
            compra = Sheets("ENTRADAS").Range("D" & f)
 
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = "Compra" And Sheets("ENTRADAS").Range("D" & f) <> "" Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    Else
                        a = 1
                    End If
                Next i
                If a = 0 Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
                    Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label12 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
        Loop
    Label12 = ListBox1.ListCount & " entradas de material"
    txt_buscar.SetFocus
End Sub

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
51
52
53
54
55
56
Private Sub txt_buscar_Change()
 
Dim ultfila As Long
    Dim nomb, compra As String
    Dim f As Long
    Dim y As Long
    Dim a As Byte
 
    Me.ListBox1.Clear
 
    Application.ScreenUpdating = False
 
    If Me.txt_buscar <> "" Then
        ultfila = Sheets("ENTRADAS").Range("A" & Rows.Count).End(xlUp).Row
        f = 2
        y = 0
        Do While f <> ultfila + 1
            a = 0
            nomb = Sheets("ENTRADAS").Range("K" & f)
            compra = Sheets("ENTRADAS").Range("D" & f).Text
            If UCase(nomb) Like "*" & UCase(Me.txt_buscar) & "*" Then
                For i = 0 To Me.ListBox1.ListCount - 1
                    If nomb = Me.ListBox1.List(i, 4)  Then
                        a = 1
                        If compra = Me.ListBox1.List(i, 1) Then 'quitar
                            Exit For
                        Else 'quitar
                            a = 0 'quitar
                        End If 'quitar
                    Else
                        a = 1
                    End If
                Next i
                If a = 0 And Sheets("ENTRADAS").Range("C" & f) = "Compra" Then
                    Me.ListBox1.AddItem
                    Me.ListBox1.List(y, 0) = Sheets("ENTRADAS").Range("B" & f).Text
                    Me.ListBox1.List(y, 1) = Sheets("ENTRADAS").Range("D" & f).Text
                    Me.ListBox1.List(y, 2) = Sheets("ENTRADAS").Range("F" & f).Text
                    Me.ListBox1.List(y, 3) = Sheets("ENTRADAS").Range("I" & f).Text
                    Me.ListBox1.List(y, 4) = Sheets("ENTRADAS").Range("K" & f).Text
                    Me.ListBox1.List(y, 5) = Sheets("ENTRADAS").Range("T" & f).Text
 
                    f = f + 1
                    y = y + 1
                    Label12 = ListBox1.ListCount & " entradas de material"
                Else
                    f = f + 1
                End If
            Else
                f = f + 1
            End If
        Loop
    Else
        Call UserForm_Initialize
    End If
End Sub

Espero te sirva

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 01/10/2019 13:18:56
Funciona perfecto para el form donde tiene que filtrar las columnas C y D (frm_compras)

Pero si lo adapto al form donde tiene que filtrar las columnas E y F (frm_devoluciones_cliente), me muestra la primera fila de la hoja y despues si funciona el codigo y me filtra las filas donde la columna E y F esta completa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por MIGUEL (121 intervenciones) el 02/10/2019 02:28:01
Buenas fjpg

esta incompleta una linea de codigo debe ser asi
1
If a = 0 And Sheets("ENTRADAS").Range("E" & f) = "Devolución" Then
esto en el evento Private Sub UserForm_Initialize()

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Filtrar hoja pero un item sin repeticiones

Publicado por fjpg (135 intervenciones) el 02/10/2019 11:56:01
Perfecto como siempre!!!! XDXDXDX

GRACIAS CRACK!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar