Imprimir página | Cerrar ventana

Buscar datos en matriz horizontal y vertical

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=86187
Fecha de impresión: 28/Marzo/2024 a las 16:06


Tema: Buscar datos en matriz horizontal y vertical
Publicado por: alfare
Asunto: Buscar datos en matriz horizontal y vertical
Fecha de publicación: 06/Diciembre/2021 a las 00:39
Hola a tod@s:
Tengo el siguiente problema y recurro a Uds para poder resolverloOuch , por favor ver la siguiente imagen :

https://ibb.co/hdBsrYL" rel="nofollow">

  1. entre las columnas J : Y, se podrán colocar unos códigos únicos relativos a unas posiciones en una bodega de almacenamiento.
  2. En la columna A, el ID de varios productos
  3. A la derecha-superior de la imagen esta la distribución de como están ubicados los códigos de las posiciones de la bodega que se nombran en el punto # 1. estos serán fijos
Lo que deseo obtener, es que mediante una combinación de formulas (la cual no he podido hallar), en la parte derecha-inferior, me traiga el código del producto que esta en casa posición cuando en las columnas J:Y se cambie algún código.

De antemano agradezco a quien se interese en este hilo.





-------------
Slds desde Cali Colombia



Respuestas:
Publicado por: xavi
Fecha de publicación: 07/Diciembre/2021 a las 16:11
Hola,

He leído como 20 veces tu planteamiento pero no soy capaz de entender los datos de partida y, mucho menos, el objetivo (a lo mejor es que en España tenemos varios festivos y estoy descolocado).

Vuelve a intentar explicarlo y, ya puestos, un ejemplo de como debería quedar.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: sdgm
Fecha de publicación: 08/Diciembre/2021 a las 17:21
Hola, Rafael.

Coincido con Xavi: ¡¡tu caso es un verdadero rompecabezas!!  Pero si te entendí bien, tal vez las siguientes líneas de puedan ayudar...

En primer lugar, te comentaré que las fórmulas (a mi entender), no te serán muy útiles.  Hay demasiadas filas y columnas por considerar, por lo que una solución por esa vía sería demasiado compleja, y hacer algún cambio posterior podría llevarte mucho tiempo y un gran riesgo de cometer algún error.  

Te aconsejaría orientar la solución a código VBA.  La cantidad de iteraciones y de resultados a generar no es muy grande, así que la velocidad de respuesta es aceptable.  Prueba insertar un módulo, y pegar allí el código siguiente:

Sub ActualizarRangos()
    Dim xCelda As Range
    For Each xCelda In Range("AA8:AB11,AD8:AE11,AG8:AH11").Cells
        xCelda.Value = CodigoPos(xCelda.Offset(-6, 0).Value)
    Next xCelda
End Sub
Private Function CodigoPos(xPosicion As String) As String
    Dim F As Long, C As Long
    For F = 2 To 12
        For C = 10 To 25
            If Cells(F, C).Value = xPosicion Then
                CodigoPos = Cells(F, 1).Value
                Exit For
            End If
        Next C
    Next F
End Function

Luego agrega un botón que llame al procedimiento "ActualizarRangos".  Deberás pulsarlo cada vez que creas que algún artículo cambió de posición.  Comenta si es esto lo que buscas.  Esta es una solución "a la medida" exacta del ejemplo que muestras.  Si el caso real tiene variaciones, tendrás que hacer las adaptaciones necesarias en el código anterior.

Adicional, si alguien logra resolver el problema con fórmulas, sería muy interesante que nos compartiera su solución.

Saludos!




-------------
Cordialmente, David


Publicado por: alfare
Fecha de publicación: 08/Diciembre/2021 a las 18:26
Hola Xavi y David.
Les ruego me excusen si mi explicación no fue clara y les hice perder tiempo, dicho lo anterior decidi colgar el siguiente video para fortalecer la explicacion.

https://youtu.be/YoQlYIhEiHo


-------------
Slds desde Cali Colombia


Publicado por: sdgm
Fecha de publicación: 08/Diciembre/2021 a las 18:49
Gracias por el video.  En efecto, veo que eso es lo que resuelvo con el código que te propongo.

Pruébalo, y si no se propone una solución por fórmula (lo que sería fabuloso), al menos tienes esta solución programada.

Saludos.


-------------
Cordialmente, David


Publicado por: Mihura
Fecha de publicación: 09/Diciembre/2021 a las 17:01
El evento Change de una hoja proporciona una valiosa información en el parámetro Target, nos da la dirección/es de las celdas cambiadas, en el momento del cambio.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then .........
End Sub


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es



Imprimir página | Cerrar ventana