Imprimir página | Cerrar ventana

Array/Matriz: guardar en variables valores repetid

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86727
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: Array/Matriz: guardar en variables valores repetid
Publicado por: JuanAl
Asunto: Array/Matriz: guardar en variables valores repetid
Fecha de publicación: 23/Junio/2023 a las 06:38

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 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 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





Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 23/Junio/2023 a las 21:35
Existen usuarios que consideran que las macros (todas) son el enemigo número 1, y otros que todo lo quieren hacer con macros (no me refiero a que este sea el caso). Ambos casos son extremos y 'los extremos' son mala compañía.

En este ejemplo sencillo (668 filas) resuelvo con Tabla dinámica.

Nombre CntAsig CntOrd Importe
Nazario Bravo Espínola S T 112,35 € CntAsig V
Jesús Arcas Ayala U V 148,50 € CntOrd U
José Ángel Brítez Carrizo V T 188,55 €    
Juan Blanco Cardozo Y T 417,16 € Etiquetas de fila Suma de Importe
Juan Blanco Cardozo U V 110,06 € Ana Rosa Correa Cardozo 397,74 €
Manuel Blanco Cardozo V V 122,76 € Jesús Arcas Ayala 344,60 €
Juan Blanco Cardozo V U 134,50 € José Ángel Brítez Carrizo 662,34 €
Nazario Bravo Espínola X Y 87,05 € Juan Blanco Cardozo 814,21 €
Manuel Blanco Cardozo W V 39,34 € Martín Alonso Escobar 99,04 €
Jesús Arcas Ayala Y Y 34,63 € Sebastián Del Pino Carrizo 380,21 €
María Aguirre Abreu S V 72,69 € Total general 2.698,14 €
María Duarte Ávila T X 336,93 €
Manuel Blanco Cardozo U V 358,96 €
Nazario Bravo Espínola U T 101,14 €
Sebastián Del Pino Carrizo U W 230,53 €
José Ángel Brítez Carrizo Y S 455,74 €
María Duarte Ávila W W 275,94 €
Isabel Pérez Cáceres U U 485,61 €
Dolores Días Arias Y T 142,20 €
María Aguirre Abreu T U 96,54 €
Jesús Arcas Ayala Y W 411,19 €
Dolores Días Arias Y V 412,78 €
José Ángel Brítez Carrizo V W 145,44 €
Dolores Días Arias V V 276,66 €
María Duarte Ávila V X 464,10 €
Manuel Blanco Cardozo S U 326,65 €
Juan Blanco Cardozo Y Y 278,44 €
Nazario Bravo Espínola X V 210,03 €
Nazario Bravo Espínola X X 167,74 €

No pretendo que este ejemplo sea lo que buscas, ya que (sinceramente) no sé en que rango tienes tus datos, ni como los tienes organizados, ni que quieres conseguir (sólo es una idea).





-------------
Saludos desde Tenerife.



Imprimir página | Cerrar ventana