Excel - Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

 
Vista:
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 23/06/2023 04:07:15
Hola, estoy usando una matriz para buscar Artículos repetidos en la columna “R” de hoja Excel (ASG 61,10,2) y guardarlos en variables.

Al Seleccionar

OptionButton1:



La condición es, si un

Artículo (“R”)


del

Almacén (“J”)


= 200, tienen cantidad

Cnt!Asig (“V”) <


cantidad

Cnt!Ord (“U”)


entonces que se sumen cada una de esas cantidades y se guarden en variables. Así debe recorrer hasta el final de toda la

hoja (ASG 61,10,2)


para guardar cantidades de todos los artículos que cumplan esa condición en variables para después cargarlos en un

ListBox



Al Seleccionar

OptionButton2:



-Se debe repetir el mismo evento para el

Almacén


300
Al Seleccionar

OptionButton3


:
-Se debe repetir el mismo evento para el

Almacén


400
Al Seleccionar

OptionButton4:



-Se debe repetir el mismo evento para el

Almacén


300

Al Seleccionar

CheckBox1:



La condición es, si un

Artículo (“R”)


del

Almacén (“J”)


=200,

Área (“AN”)


= 5° y 6° tienen cantidad

Cnt!Asig (“V”) <


cantidad

Cnt!Ord (“U”)


entonces que se sumen cada una de esas cantidades y se guardan en variables. Así debe recorrer hasta el final de toda la

hoja (ASG 61,10,2)


para guardar cantidades de todos los artículos que cumplan esa condición en variables para después cargarlos en un

ListBox



Al Seleccionar

CheckBox2:



-Se debe repetir el mismo evento para el

Almacén


200 y

Área


RM
Al Seleccionar

CheckBox3


:
-Se debe repetir el mismo evento para el

Almacén


200 y

Área


Norte

Adjunto el Archivo. La duda que aún no logro resolver esta en esta parte del código:

UltimaFila = WS1_TS.Range("J" & Rows.Count).End(xlUp).Row 'Obtiene el valor de la ultima fila con datos

Dim Arr As Variant 'Vector que contendra los datos de la hoja Worksheets("ASG 61,10,2")
Arr = WS1_TS.Range("A2:AT" & UltimaFila).Value2
Dim VR_CD_Quiebre200() As Variant ''Vector adimensional que se transformara en bidimensional para contener los datos de la busqueda y luego cargarlos en el listbox Detalle_Quiebre

For I = LBound(Arr) To UBound(Arr) 'Recorre desde el indice menor hasta el mayor de la hoja de excel
Almacen_Quiebre200 = Arr(I, 10)
'Articulo_Quiebre200 = Arr(I, 18)

If Almacen_Quiebre200 = 200 And Arr(I, 23) < Arr(I, 21) And _
Application.WorksheetFunction.CountIf(Range("R2:R" & UBound(Arr)), Range("R" & LBound(Arr))) > 1 Then
Articulo_Quiebre200 = Range("R" & LBound(Arr)).Value 'cargar en una variable los articulos repetidos
Formulario-ASG
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
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 23/06/2023 04:45:12
Salió un poco descuadrado el planteamiento. Vuelvo a enviar lo planteado.

Hola, estoy usando una matriz para buscar Artículos repetidos en la columna “R” de hoja Excel (ASG 61,10,2) y guardarlos en variables.

Al Seleccionar OptionButton1:
La condición es, si un Artículo (“R”) del Almacén (“J”) = 200, tienen cantidad Cnt!Asig (“V”) < cantidad Cnt!Ord (“U”) entonces que se sumen cada una de esas cantidades y se guardan en variables. Así debe recorrer hasta el final de toda la hoja (ASG 61,10,2) para guardar cantidades de todos los artículos que cumplan esa condición en variables para después cargarlos en un ListBox
Al Seleccionar OptionButton2:
-Se debe repetir el mismo evento para el Almacén 300
Al Seleccionar OptionButton3:
-Se debe repetir el mismo evento para el Almacén 400
Al Seleccionar OptionButton4:
-Se debe repetir el mismo evento para el Almacén 300

Al Seleccionar CheckBox1:
La condición es, si un Artículo (“R”) del Almacén (“J”) =200, Área (“AN”) = 5° y 6° tienen cantidad Cnt!Asig (“V”) < cantidad Cnt!Ord (“U”) entonces que se sumen cada una de esas cantidades y se guardan en variables. Así debe recorrer hasta el final de toda la hoja (ASG 61,10,2) para guardar cantidades de todos los artículos que cumplan esa condición en variables para después cargarlos en un ListBox
Al Seleccionar CheckBox2:
-Se debe repetir el mismo evento para el Almacén 200 y Área RM
Al Seleccionar CheckBox3:
-Se debe repetir el mismo evento para el Almacén 200 y Área Norte

Adjunto el Archivo. La duda que aún no logro resolver esta en esta parte del código:

UltimaFila = WS1_TS.Range("J" & Rows.Count).End(xlUp).Row 'Obtiene el valor de la ultima fila con datos
Dim Arr As Variant 'Vector que contendra los datos de la hoja Worksheets("ASG 61,10,2")
Arr = WS1_TS.Range("A2:AT" & UltimaFila).Value2
Dim VR_CD_Quiebre200() As Variant ''Vector adimensional que se transformara en bidimensional para contener los datos de la busqueda y luego cargarlos en el listbox Detalle_Quiebre
For I = LBound(Arr) To UBound(Arr) 'Recorre desde el indice menor hasta el mayor de la hoja de excel
Almacen_Quiebre200 = Arr(I, 10)
'Articulo_Quiebre200 = Arr(I, 18)
If Almacen_Quiebre200 = 200 And Arr(I, 23) < Arr(I, 21) And _
Application.WorksheetFunction.CountIf(Range("R2:R" & UBound(Arr)), Range("R" & LBound(Arr))) > 1 Then
Articulo_Quiebre200 = Range("R" & LBound(Arr)).Value 'cargar en una variable los articulos repetidos
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 23/06/2023 14:44:37
He estado mirando tu código y la verdad me ha costado leerlo.
He realizado algunas modificaciones, sigue haciendo lo mismo, pero se lee mejor. Espero que te guste.

Ahora lo que no funciona:

Tanto en Carga_TS como en cargalistbox_Quiebre copias todo el contenido de la hoja en una tabla.
Se puede hacer lo mismo recorriendo las celdas sin necesidad de duplicar la información y saturar la memoria.

El problema esta en este IF

1
2
3
If Almacen_Quiebre200 = 200 And _
   Arr(I, 23) < Arr(I, 21) And _
   Application.WorksheetFunction.CountIf(Range("R2:R" & UBound(Arr)), Range("R" & LBound(Arr))) > 1 Then

El error esta en la parte en negrita y hay varios en un sola instrucción

1º - Esto esta mal:
1
Range("R2:R" & UBound(Arr))
porque esto UBound(Arr) te devuelve los elementos de la tabla y no la ultima fila que es: UltimaFila. Has omitido la cabecera.

2º - Esto esta mal
1
Range("R" & LBound(Arr))
porque esto LBound(Arr) te devuelve el indice del primer elemento, o sea un valor 1 y Range te esta devolviendo el texto de la cabecera.

La solución es esto:

1
2
3
If Almacen_Quiebre200 = 200 And _
   Arr(I, 23) < Arr(I, 21) And _
   Application.WorksheetFunction.CountIf(Range("R2:R" & UltimaFila, Range("R" & I+1)) > 1 Then

Con este cambio funciona cuando marcas CD-200, el resto no porque hay un filtro : If Almacen_Quiebre200 = 200

Otra cosa:

Toda la colección de IF la he resuelto así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
For T = 1 To 10
    Select Case T
        Case 1:  VR_CD_Quiebre200(T, CD) = Arr(I, 18)                                                ' ---&---  Articulo
        Case 2:  VR_CD_Quiebre200(T, CD) = Arr(I, 19)                                                ' ---&---  Descripcion
        Case 3:  VR_CD_Quiebre200(T, CD) = Arr(I, 25): Stock_CD200    = Stock_CD200    + Arr(I, 25)  ' ---&---  Stock
        Case 4:  VR_CD_Quiebre200(T, CD) = Arr(I, 45): Reserva_CD200  = Reserva_CD200  + Arr(I, 45)  ' ---&---  Reserva
        Case 5:  VR_CD_Quiebre200(T, CD) = Arr(I, 26): InvAsig_CD200  = InvAsig_CD200  + Arr(I, 26)  ' ---&---  Inventario_Asignado
        Case 6:  VR_CD_Quiebre200(T, CD) = Arr(I, 46): Transito_CD200 = Transito_CD200 + Arr(I, 46)  ' ---&---  Transito
        Case 7:  VR_CD_Quiebre200(T, CD) = Arr(I, 21): Dem_CD200      = Dem_CD200      + Arr(I, 21)  ' ---&---  Demanda
        Case 8:  VR_CD_Quiebre200(T, CD) = Arr(I, 22): Asig_CD200     = Asig_CD200     + Arr(I, 22)  ' ---&---  Asignacion
        Case 9:  VR_CD_Quiebre200(T, CD) = Arr(I, 23): Pick_CD200     = Pick_CD200     + Arr(I, 23)  ' ---&---  Picking
        Case 10: VR_CD_Quiebre200(T, CD) = Arr(I,  2): FalPick_CD200  = FalPick_CD200  + Arr(I,  2)  ' ---&---  Picking_Faltante
    End Select
Next T

Pero viendo lo que hace, así es más simple y más rápido:

1
2
3
4
5
6
7
8
9
10
VR_CD_Quiebre200( 1, CD) = Arr(I, 18)                                                ' ---&---  Articulo
VR_CD_Quiebre200( 2, CD) = Arr(I, 19)                                                ' ---&---  Descripcion
VR_CD_Quiebre200( 3, CD) = Arr(I, 25): Stock_CD200    = Stock_CD200    + Arr(I, 25)  ' ---&---  Stock
VR_CD_Quiebre200( 4, CD) = Arr(I, 45): Reserva_CD200  = Reserva_CD200  + Arr(I, 45)  ' ---&---  Reserva
VR_CD_Quiebre200( 5, CD) = Arr(I, 26): InvAsig_CD200  = InvAsig_CD200  + Arr(I, 26)  ' ---&---  Inventario_Asignado
VR_CD_Quiebre200( 6, CD) = Arr(I, 46): Transito_CD200 = Transito_CD200 + Arr(I, 46)  ' ---&---  Transito
VR_CD_Quiebre200( 7, CD) = Arr(I, 21): Dem_CD200      = Dem_CD200      + Arr(I, 21)  ' ---&---  Demanda
VR_CD_Quiebre200( 8, CD) = Arr(I, 22): Asig_CD200     = Asig_CD200     + Arr(I, 22)  ' ---&---  Asignacion
VR_CD_Quiebre200( 9, CD) = Arr(I, 23): Pick_CD200     = Pick_CD200     + Arr(I, 23)  ' ---&---  Picking
VR_CD_Quiebre200(10, CD) = Arr(I,  2): FalPick_CD200  = FalPick_CD200  + Arr(I,  2)  ' ---&---  Picking_Faltante

Esto último lo añado al código.

Y de momento nada más. Ya me contaras.

Saludos.
\\//_
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 23/06/2023 15:31:31
Adjunto el libro modificado.
Se me había pasado.


Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 23/06/2023 16:34:19
Hola Antoni, gracias por tu aporte, pero en el archivo que enviaste la carga en el ListBox se observa los campos Artículo, Descripción, Stock. Reserva, InvAsig y Trans, repetido varias veces.

Formulario-ASG-Antoni

Lo que quiero es que los campos Artículo, Descripción, Stock. Reserva, InvAsig y Trans se vean una sola vez y los campos Orden, Asign, Pick y FaltPick sean la suma total de cada columna. Deberían quedar así, eso mismo debería ser para cada uno de los demás Artículos del Almacén 200

Formulario-ASG-Antoni

Y así sucesivamente para cada uno de los controles OptionButton y ChekBox cada vez que se seleccionen:
Al Seleccionar OptionButton2:
-Se debe repetir el mismo evento pero con el Almacén 300
Al Seleccionar OptionButton3:
-Se debe repetir el mismo evento pero con el Almacén 400
Al Seleccionar OptionButton4:
-Se debe repetir el mismo evento pero con el Almacén 300

Al Seleccionar CheckBox1:
-Se debe repetir el mismo evento para el Almacén 200 y Área 5° y 6°
Al Seleccionar CheckBox2:
-Se debe repetir el mismo evento para el Almacén 200 y Área RM
Al Seleccionar CheckBox3:
-Se debe repetir el mismo evento para el Almacén 200 y Área Norte
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 24/06/2023 14:35:28
Ahora que empiezo a entender el código voy a intentar entender lo que quieres hacer.

Veo muchas discrepancias.

En el primer mensaje dices:

1
2
La condición es, si un Artículo (“R”) del Almacén (“J”)= 200,
tienen cantidad Cnt!Asig (“V”) < cantidad Cnt!Ord (“U”)

En el código comparas las columnas 21 y 23

1
If Almacen_Quiebre200 = 200 And Arr(I, 23) < Arr(I, 21) And _

Dices que las cantidades se sumen ¿Cuáles? Porque solo sumas los totales

Al seleccionar las opciones no se puede marcar CD-200 y RM para seleccionar almacén 200 y area RM.

REVISION del 2º mensaje.

Entiendo las opciones de los OptionButton pero ojo que hay un almacén que se llama 200RV (fila 3314, artículo 411451 descripción: YOG CAL FRUT UNIV 110GR)

Cuando hables de sumar las cantidades supongo que te refieres a que el código del artículo salga una sola vez en el ListBox y sume: Stock, Reserva, Inv Asig, Trans, orden, Asign, Pick y FaltPick.

Ahora no lo hace y por eso en la versión que te envie sale varias veces el mismo codigo y la razón es porque ordene la tabla por almacen y artículo. En el ListBox no deberían de salir más de 115 articulos diferentes porque son los que tienesen la tabla.

Ahora que creo que entiendo lo que quieres hacer voy a proceder a arreglarlo.


Tengo unas preguntas:



La consulta se hace por almecen y se filtra por Area opcionalmente ¿Correcto?

Seleccionas una almacen y para la consulta puedes marcar: (indicar las opciones que se desea)

[__] Una Area
[__] Varias Areas
[__] Ninguna Area lo que quivale a marcarlas todas

La columna AREA hay varios valores:
5º y 6º Región
CD Chillan
CD Coquimbo
CD Temuco
RM

En el formulario hay 3
5º y 6º Región
RM
NORTE

¿A que texto corresponde NORTE?


Ahora la parte gorda.



El proceso es leer un articulo y verificar:
- Si corresponde al almacen
- Verificar las cantidades columna U y V (arreglar el codigo)
- Comprobar si el articulo esta en la tabla repetido, en caso de no estarlo se ignora. Estos articulo solo esta una vez en la hoja:
401219
415139
415596
415599

- Buscar si estan el la nueva tabla es la que los añado. En este caso es la tabla VR_CD_Quiebre200() Si no existe añade un nuevo elemento y si existe suma las cantidades.

Más adelante añado los filtros para los otros almacenes y los filtros de la Area.


Te comento otro error que he visto en el código:

Los OptionButton son excluyentes, quiere decir que NO puedes marcar más de uno a la vez.
Los CheckBox son incluyentes, quiere decir que puedes marcar uno o varios a la vez.

No entiendo lo que haces en el código nio que es l que pretendes hacer.


Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 24/06/2023 17:20:33
Hola Antoni, al seleccionar la hoja del archivo me marca error de ejecución. Observó que los campos Stock. Reserva, InvAsig y Trans se están sumando, esos campos no se deben sumar solo se deben colocar como los campos Artículo, Descripción

Ahora respondo a tus preguntas:

La consulta se hace por almacén y se filtra por Área opcionalmente ¿Correcto?
[__] Una Área
[__] Varias Áreas
[__] Ninguna Área lo que equivale a marcarlas todas

Respuesta: Correcto, eso es.

La columna ÁREA hay varios valores:
5º y 6º Región
CD Chillan
CD Coquimbo
CD Temuco
RM

En el formulario hay 3
5º y 6º Región
RM
NORTE

¿A qué texto corresponde NORTE?

Respuesta: En este caso en el Formulario solo se utiliza 3 CheckBox: 5º y 6º Región, RM y Norte
No se considera CD Chillan, CD Coquimbo y CD Temuco porque eso información lo administra/Analiza otra jefatura.
Registros del Norte no figuran porque son pedidos que solo se hacen una vez por semana y en esta ocasión se descargó la información del sistema el día que no había pedidos. Pero podría agregarse un par de líneas de registro solo como prueba cuando se seleccione el CheckBox

Hay un almacén que se llama 200RV. ¿???
Respuesta: El Almacén 200VR no tiene relevancia por eso no se considera en el análisis (Todo lo que sea Almacén con terminación VR significa merma de artículo)

El proceso es leer un artículo y verificar:
- Si corresponde al almacén
- Verificar las cantidades columna U y V (arreglar el código)
- Comprobar si el artículo está en la tabla repetido, en caso de no estarlo se ignora. Estos articulo solo esta una vez en la hoja:
401219
415139
415596
415599

Respuesta: En el ListBox se deben reportar todos los artículos (incluidos los que no están repetidos) del Almacén seleccionado, los que se repiten deben aparecer una sola vez. En el ListBox los campos Artículo, Descripción, Stock. Reserva, InvAsig y Trans deben aparecer sin repetirse y los campos Orden, Asign, Pick y FaltPick deben ser la suma total del artículo de un almacén con la condición que Pick < Orden.
En conclusión, en el ListBox deben aparecer todos los pedidos de artículos con quiebre:
Orden (Cantidad que pidió el cliente)
Asig (Cantidad asignada por sistema)
Pick (Cantidad impresa por sistema)
FaltPick (Pick es menor al Orden. Es la diferencia porque no cubre lo solicitado por el cliente)

Te comento otro error que he visto en el código:

Los OptionButton son excluyentes, quiere decir que NO puedes marcar más de uno a la vez.

Respuesta: Si, porque los análisis se hacen por Almacén porque cada almacén significa una sucursal

Los CheckBox son incluyentes, quiere decir que puedes marcar uno o varios a la vez.
Respuesta: Si, porque pedidos para 5º y 6º Región, RM y NORTE se hacen desde una sola sucursal (Almacén 200). Me pueden pedir la siguiente información: ¿cuántos quiebres tenemos en RM o Norte o 5° y 6°? ¿Total Quiebres en RM y 5° y 6°?? ¿Total Quiebres en RM, Norte y 5° y 6°?, Etc.,


La idea es que al final en el ListBox los registros se vean así.






Formulario-ASG-Antoni
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 24/06/2023 19:11:23
No le encuentro sentido a esta condición:

1
Application.WorksheetFunction.CountIf(Range("R2:R" & UltimaFila), Range("R" & I + 1)) > 1

¿Que es lo que se pretende con ella? Lo único que hace es que estos 4 artículos:
401219
415139
415596
415599

No se muestren en el ListBox.

Hay dos detalles que se pueden añadir:

- Ordenar la tabla por código de artículo.
- Alinear los números a la derecha.

Si te interesa busco como hacerlo.

Saludos.
\\//_
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 24/06/2023 22:41:28
Te adjunto la última versión en la que he modificado:

- Ordenar la tabla por código de artículo.
- Alinear los números a la derecha centrados.

Ahora bien hay un problema, puedo alinear las columnas, todas, a la izquierda o al centro, si pongo alinear a la derecha solo muestra la 9 primeras columnas.

Las dejo centradas. Debe ser un BUG del Excel.

Dejo el filtro:

1
Application.WorksheetFunction.CountIf(Range("R2:R" & UltimaFila), Range("R" & I + 1)) > 1


Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 25/06/2023 04:04:47
Hola Antoni, respondo a tu observación.

Con respecto a esta instrucción.
Application.WorksheetFunction.CountIf(Range("R2:R" & UltimaFila), Range("R" & I + 1)) > 1
Lo hice pensando en rescatar los duplicados y guardarlo en una variable para después una sola vez el artículo cargarlo en el ListBox. Por lo visto no sirve para lo que finalmente quiero. Habría que eliminarlo o modificar esa condición.

En conclusión, lo que se quiere es que en el ListBox se carguen registros de los campos Artículo, Descripción, Stock. Reserva, InvAsig y Trans sin repetirse (también deben aparecer los artículos que no se repiten), y los campos Orden, Asign, Pick y FaltPick sean la suma total por artículo en cada columna. Deben cumplir condición; ser del almacén 200 y Pick < Orden

Revisando el Archivo ASG_ListBox_V5.zip que enviaste encontré que los campos Artículo, Descripción, Stock. Reserva, InvAsig y Trans ya no se repiten eso está OK, pero Orden, Asign, Pick y FaltPick en el ListBox todavía no se cargan como suma total por artículo.
Para validar si los registros del ListBox corresponden agregue en la Hoja (“ASG 61,10,2”) en la columna AU una fórmula, para después filtrar por “Quiebre”, almacén 200 y Artículo, y hacer la suma de los campos Orden, Asign, Pick y FaltPick por artículo y me arrojo este resultado que es como debe reportarse en la carga del ListBox


Debe-quedar-Carga-del-ListBox
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 25/06/2023 06:57:58
Antoni,

La fórmula que coloque en Hoja (“ASG 61,10,2”) en la columna AU eso no quedara en al el archivo original, lo hice solo para hacer la suma manual para mostrar cómo debe quedar cuando se carguen los registros en el ListBox.
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 25/06/2023 10:48:23
Sigo teniendo una duda. ¿Cual es la fórmula correcta?

esta

1
2
3
' ---&---  Filtro por Cantidad : cnt!asig < cnt!ord --- Columna V < U
 
If Arr(I, 22) < Arr(I, 21) Then Filtro = Filtro + 1

Da este resultado: Ver fichero ASG_C22.jpg

esta

1
2
3
' ---&---  Filtro por Cantidad : cnt!Pick < cnt!ord --- Columna W < U
 
If Arr(I, 23) < Arr(I, 21) Then Filtro = Filtro + 1

Da este resultado: Ver fichero ASG_C23.jpg

Ya acumula los 4 últimos campos del ListBox.

Tengo una pregunta más:

¿Cómo lo haces para añadir la imagen en texto? Pongo esto: [ img ][ /img ]
¿que texto se ha de poner y como y donde debe estar a imagen?

Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 25/06/2023 12:06:01
Antoni,

Me parece que la imagen que enviaste ASG 22 corresponde al ASG 23. En todo caso cuando envies el archivo Excel lo vuelvo a revisar para ver si los números cargados en el ListBox corresponden
Esta debe ser la condición
' ---&--- Filtro por Cantidad : cnt!Pick < cnt!ord --- Columna W < U

If Arr(I, 23) < Arr(I, 21) Then Filtro = Filtro + 1

Te envio una imagen donde se visualiza donde subir el fichero de imagen. Al momento de escribir el mensaje aparece donde se debe subir la imagen



Subir-imagen
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 26/06/2023 09:41:12
Antoni,

Manualmente sume las cantidades (Orden, Asign, Pick y FaltPick) de algunos artículos como se deben reportar en el ListBox de acuerdo a como se seleccionen los OptionButton y CheckBox


OptionButton1-2-3-4-CD-200-CD-300-CD-400-CD-500
CheckBox1-2-RM-5-y-6
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 26/06/2023 16:22:02
Solo muestra los 200 por que hay una condición que sobra:

1
If RESUMEN.OptionButton1.Value = True Then

Reviso por que hay algunas diferencias. Luego te cuento.

Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 26/06/2023 18:33:10
Hola Antoni,

En la Hoja (“ASG 61,10,2”) se podrían agregar unas líneas de registros para el Área Norte, solo habría que modificar el Área porque también esos registros pertenecen al Almacén 200, esto para probar el despliegue en ListBox cuando se seleccione el CheckBox3. También cuando se seleccionen las combinaciones de CheckBox como:

CheckBox1 y CheckBox3 --> 5° y 6° y Norte
CheckBox2 y CheckBox3 --> RM y Norte
CheckBox2, CheckBox1 y CheckBox3 --> 5° y 6° RM y Norte
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 26/06/2023 18:36:34
He arreglado para que salgan todos los almacenes.

Otro detalle es lo que sale en la consulta, no me cuadra las muestras que envías y lo que me sale a mi.


Esta es tu muestra

a1

En mi consulta:

a2

Veo diferencias:

En el mio salen más artículos, por ejemplo:
100103
100554
120623
120644
123041
123141
123142


Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 26/06/2023 19:11:25
Algunas aclaraciones

-En el cuadro de muestra que te envié antes solo mostré como ejemplo algunos artículos, obvio que no están todos por que la suma lo hice manual en la misma Hoja (“61,10,2”), pero los que están si deben tener esas cantidades.

-En el ListBox en la columna FaltPick deben aparecer la diferencia de Orden menos Pick

En el último archivo que te envié

-En la Hoja (“61,10,2”) si filtras los campos por Almacén, Articulo y todas las cantidades donde la columna W Cnt!Pick sea menor a columna U Cnt!Ord (para esta última condición momentáneamente le agregue en columna AU una fórmula Quiebre para poder filtrar Cnt!Pick sea menor a Cnt!Ord). ahí se puede comprobar el total de cantidades por artículo. Lo más probable que en el código le falta algún detalle que no está sumando bien bajo esa condiciones
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 29/06/2023 01:56:56
Hola Antoni,
Compare el resultado de tu consulta con los registros de cada uno de los artículos en la Hoja (“ASG 61,10,2”), tratando de llegar a las cantidades de tu consulta por articulo realice las sumas de cada columna (Cnt!Ord - Cnt!Asig - Cnt!Pick) en la Hoja.

La conclusión me dice que según el resultado de tu consulta en el ListBox el bucle no está filtrando por condición Columna W < Columna U (Fórmula “Quiebre” columna AU) ya que considera el articulo por Almacén 200 sin la condición Cnt!Pick < Cnt!Ord.

Además, si fuera el caso que solo debiera tener como condición el Almacén, el resultado de tu consulta en ListBox no está considerando hasta el último registro de la Hoja (“ASG 61,10,2”) (las cantidades de los registros que están en ROJO son los últimos registros)

Tu consulta del ListBox.






Consulta-de-Antoni


Muestras de la Hoja ("ASG 61,10,2") solo filtrado por Almacén y Artículo con últimos registros no considerado en la consulta mostrado en el ListBox (Últimos registros en Rojo).


Hoja-ASG-61102-Articulo-100103

Hoja-ASG-61102-Articulo-100553

Hoja-ASG-61102-Articulo-100554

Hoja-ASG-61102-Articulo-120623

Hoja-ASG-61102-Articulo-120644

Hoja-ASG-61102-Articulo-120651

Hoja-ASG-61102-Articulo-123041

Hoja-ASG-61102-Articulo-123141

Hoja-ASG-61102-Articulo-123142

Hoja-ASG-61102-Articulo-124002

Hoja-ASG-61102-Articulo-124003



Atento a tu respuesta

Saludos
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 30/06/2023 11:56:07
No se lo que esta pasando pero no veo el problema.

Para hacer una comparativa he creado un nuevo libro (Ver. 9).
He copiado la hoja de datos y he quitado todas las columnas que no se usan en el formulario.
He creado una Tabla Dinámica con la nueva hoja (Con tantas columnas en el original tenia problemas con al Tabla)
He creado la misma consulta que el formulario en la Tabla Dinámica y voy haciendo las consultas y copiando el resultado en otra hoja que se llama Compara TD y Formulario.

En la Tabla Dinámica no pongo el nombre del articulo porque no me sirve el diseño que hace
Las 4 primeras columnas: Stock -Reserva - Inv Asig -Trans pongo el promedio, también me sirve el mínimo o el máximo. Los totales los tengo que arreglar a mano.
En las 4 siguientes la suma.

He creado una Hoja3 y he añadido código al formulario para que cada consulta la escriba en esta hoja.
Cada vez que abro el formulario empieza en la fila 1.
El proceso es el siguiente:
- Abro el formulario consulto almacén 200
- Filtro Area RM
- Añado filtro 5º y 6ª
- Elimino filtro RM
- Cierro formulario.
Copio de la Hoja3 a la hoja comparativa (columnas K:S)
Hago lo misma con la Tabla Dinámica y copia en la hoja comparativa en las columnas A:S

Al final añado de la columna U a la AC que compare los valores y todo sale IGUAL. No veo lo que me estas contando.

Adjunto libro de pruebas. NO utilizar como versión buena, La buena es la V8

Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 30/06/2023 14:53:26
Hola Antoni, aun no me has enviado el archivo de la ASG_ListBox_V8.zip


En el archivo ASG_ListBox_V9 que me acabas de enviar marca error al activar OptionButton 1

Error-en-V9

Saludos
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 30/06/2023 15:40:40
Antoni, aun no me has enviado el archivo de la ASG_ListBox_V8.zip

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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 01/07/2023 03:15:47
Hola estimado Antoni, el ListBox ya está desplegando las cantidades correctas de los Almacenes, pero hay un pequeño detalle que tiene que ver con el área “Norte”

Los OptionButton y los CheckBox están trabajando bien con el despliegue de registros en el ListBox, excepto el CheckBox3 (Área: Norte). Se supone que si selecciono cualquier de los OptionButton (Almacén) y el CheckBox3 (Área: Norte) el ListBox no debería mostrar nada porque no hay registros del Área “Norte”

Por ejemplo, en la imagen, al seleccionar el OptionButton1 (CD-200) y CheckBox3 (Área: Norte) me muestra en el ListBox todos los registros del Almacén 200, cuando lo correcto al filtrar por Área “Norte” no debiera mostrar nada porque en la Hoja (“ASG 61,10,2”) no hay registros de esa Área. Si seleccionas cualquiera de los otros OptionButton (Almacén) con el CheckBox3 (Área: Norte) también esta sucediendo lo mismo


CkeckBox3-Area-Norte

Antoni, aprovechando de tu buena voluntad sería posible que describas cómo funciona el código, Sub cargalistbox_Quiebre() para poder entenderlo bien.

Gracias
Saludos
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Antoni Masana (2498 intervenciones) el 01/07/2023 13:00:11
Arreglado y comentado.

Si hay algo que no entiendas pregúntalo sin compromiso.

Saludos.
\\//_
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: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Array/Matriz para guardar en variables valores repetidos de una columna y después cargar ListBox

Publicado por Juan (184 intervenciones) el 03/07/2023 10:29:00
Estimado Antoni, ya esta funcionando ok, también está claro la explicacion de como funciona el codigo Sub cargalistbox_Quiebre(). Muchas gracias por tu buena voluntad, se agradece enormemente.

Saludos
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