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:
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.
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
-1