Hallar un numero entre un rango de números

Tengo tres diferentes grupos de artículos...

Grupo Uno... Del 1 al 30

Grupo Dos ... Del 31 al 79

Y Grupo Tres... Del 80 al 251

B7 tengo los artículos: 1, 115, 162, 209

B8 tengo los artigulos: 2, 50, 86, 116, 163, 210, 251

B9 tengo los artículos: 3, 51, 87, 117, 164, 211, 252

Necesito que:

En C7 me diga si en B7 hay algún articulo del Grupo Uno (en el rango del 1 al 30)

En C8 si hay algún articulo del Grupo Dos (en el rango del 31 al 79)

En C9 si hay algún articulo del Grupo Tres (en el rango del 80 al 251)

Esto es solo un ejemplo con tres grupo, pero aun tengo muchos grupos y muchas partidas

Jojo no se si me expliqué

1 respuesta

Respuesta
1

H o l a:

En esta celda B7 tienes los artículos: 1, 115, 162, ¿209 . Separados por comas?

¿Lo necesitas con fórmulas o puede ser con una macro?

Podrías poner una imagen de cómo tienes los datos y el resultado que esperas, por ejemplo en la celda C7.

Tal vez algo así

 H o l a:  

Vamos a utilizar una macro, para ello deberás poner tu información de la siguiente manera.

En la hoja 1 pon tus datos así, en la fila 1 los encabezados, en la fila 2 empieza a poner tus datos.

En la hoja2, pon los grupos de esta forma:


Debes cuidar que los nombres de los grupos: Grupo uno, Grupo dos, Grupo tres, etc, tengan el mismo nombre, tanto en los encabezados de la hoja 1, como en la hoja 2.


De la forma en que te estoy poniendo los ejemplos podrás tener varios artículos y varios grupos.


Pon la siguiente macro en un módulo:

Sub BuscarGrupos()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    h1.UsedRange.Offset(1, 2).ClearContents
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        nums = Split(h1.Cells(i, "B"), ",")
        For k = LBound(nums) To UBound(nums)
            num = Val(nums(k))
            res = Application.VLookup(num, h2.Columns("A:C"), 3, 1)
            If Not IsError(res) Then
                Set b = h1.Rows(1).Find(res, lookat:=xlWhole)
                If Not b Is Nothing Then
                    h1.Cells(i, b.Column) = "SI"
                Else
                    uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column + 1
                    h1.Cells(1, uc) = res
                    h1.Cells(i, uc) = "SI"
                End If
            End If
        Next
    Next
    MsgBox "Proceso terminado"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu Hoja 1, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: BuscarGrupos
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Avísame cualquier duda que tengas.


muchas gracias me sirvió de mucho

la macro corre bien y agiliza el trabajo

ahora se a que complejo voy a distribuir cada articulo

a la hora de correr la macro le di que trabajara solo en este LIBRO y excelente

nuevamente gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas