Ajustar ubicación de imagenes para reconocer un catalogo a una hoja de excel

Tengo este código que me ayudaron a editarlo en el foro, a mis necesidades y funciona perfectamente:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Mod.Por.DAM

On Error Resume Next

If Not Intersect(Target, Range("H4:H723")) Is Nothing Then
ruta = ActiveWorkbook.Path & "\IMAGENES\"
If Dir(ruta & Target & ".jpeg") <> "" Then
Image1.Picture = LoadPicture(ruta & Target & ".jpeg")
Else
Image1.Picture = Nothing
End If
End If

If Not Intersect(Target, Range("H4:H723")) Is Nothing Then
Image1.Visible = True
Else
Image1.Visible = False
End If

End Sub

Pero tengo esta duda, trabajo este archivo en una carpeta X, en esta tengo el archivo y otra subcarpeta de donde trae las imágenes, se puede cambiar la ruta donde obtiene la imagen, para que en vez de que la obtenga de la carpeta, la lea de la hoja 2, de ese mismo libro, en donde si el producto osea A1, coincide con cualquier celda del rango que tengo en la macro de la hoja 1, me traiga la imagen y así sucesivamente.

Más o menos, así estaría en la hoja 2, de donde obtendría la imagen:

            A                               B             

1     Caja de regalo                

2     Globos para eventos        

3     Termos Azules             

1 respuesta

Respuesta
1

Podrías poner los datos reales, es decir, dices: "trabajo este archivo en una carpeta X", puedes poner el nombre de la carpeta X. También dices: " puede cambiar la ruta donde obtiene la imagen, para que en vez de que la obtenga de la carpeta, la lea de la hoja 2", ¿de cuál carpeta?, puedes explicar todo pero utilizando los nombres archivos, de hojas y de carpetas, para que sea más claro.

Actualmente la macro funciona cuando escribes algo en la columna "H", ahora, quieres que se ejecute en automático o quieres que se ejecute presionando un botón.

OK, mi carpeta principal se llama "Catalogo", en ella hay 1 subcarpeta llamada "IMAGENES" y un archivo de excel que se llama INVENTARIO, la macro me muestra la imagen del producto y la obtiene de la subcarpeta "IMAGENES", cada vez que selecciono alguna celda del rango H4:H723 y me funciona muy bien.

Lo que pretendo es que en el archivo INVENTARIO, tengo 2 pestañas, 1 se llama CONCENTRADO, donde tengo la base de datos, y en la otra  IMAGE en esta en la columna A, tengo el nombre del producto y en la B, esta la imagen, es aqui donde no se como relacionar que si pongo el cursor en H4 de la pestaña CONCENTRADO, que es mi rango de la macro y coincide el nombre del producto con alguno que este en la pestaña IMAGE, me traiga su imagen, no se si pueda  

Cualquier duda, me avisa

Saludos

¿Quieres qué en la hoja "concentrado" te ponga la imagen que tienes en la hoja "image"? ¿Y quieres que la imagen te la copie de "image" a "concentrado" o que vaya a buscarla a la carpeta?

¿Qué vaya a la carpeta por la imagen eso ya lo hace o no?

Hola, sería la primer opción que en la hoja "concentrado" me ponga la imagen que tengo en la hoja "image",cada vez que seleccione alguna celda del rango de la macro antes mencionado, ejemplo si en H4, tengo cajas de regalo y en la hoja Image algun nombre de la columna A coincide, me traiga su imagen, que estaría en la columna B

Saludos

Puedes enviarme tu archivo para ver cómo tienes las imágenes en "image" y poder ajustar la macro.

Ya se lo mande

Saludos

Te envié la macro para tomar la imagen.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Mod.Por.DAM
If Not Intersect(Target, Range("H4:H723")) Is Nothing Then
    If Target <> "" Then
        Set b = Sheets("image").Range("A:A").Find(Target)
        If Not b Is Nothing Then
            Image1.Visible = True
            fila = b.Row
            arriba = b.Top
            abajo = Sheets("IMAGE").Cells(b.Row + 1, "B").Top
            For Each o In Sheets("image").DrawingObjects
                If o.Top >= arriba And o.Top <= abajo Then
                    archivo = "C:\imagentemporal.JPEG"
                    o.CopyPicture
                    anc = o.Width
                    alt = o.Height
                    ActiveSheet.Shapes.AddChart
                    With ActiveSheet.ChartObjects(1)
                        .Width = anc
                        .Height = alt
                        .Chart.Paste
                        .Chart.Export archivo
                        .Delete
                    End With
                    Image1.Picture = LoadPicture(archivo)
                    Exit For
                End If
            Next
        Else
            Image1.Picture = Nothing
            Image1.Visible = False
        End If
    Else
        Image1.Picture = Nothing
        Image1.Visible = False
    End If
Else
    Image1.Picture = Nothing
    Image1.Visible = False
End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola ya quedo aunque surgió un detalle, presione CTRL+B, para buscar algún producto, pero no me da la opción, tengo que poner el cursor en un rango que este en blanco o activar el modo diseño, ¿esto por qué sucede?

A mí me funciona el CTRL + B, a lo mejor tienes alguna macro de tus libros asignada a las teclas CTRL + B

Entra al menú de programador, en la ficha Código, selecciona el icono Macros, en la siguiente ventana, te aparecen todas las macros, selecciona una por una y presiona el botón opciones, revisa en la siguiente ventana si tienes la letra B en la tecla de método abreviado. Borra la letra y presiona Aceptar

Saludos

Si te funcionó la solución, podrías cambiar la valoración de la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas