Necesito saber, como colocar una imagen en image de userform, que se ubica en una hoja de excel.

Hola Experto, quiero pedir una ayuda a uds. Lo que pasa que estoy haciendo una macro, donde necesito colocar una imagen que se encuentra en la Hoja1, celdas C3:D5, en una Image1 de userform. Espero que se comprenda lo que solicito.

Muchas Gracias.

Respuesta
1

No se puede cargar directamente una imagen de las celdas a un control image.

Lo que hace la macro es crear temporalmente un chart en la hoja, copiar dentro del chart tu imagen, guardar el chart en un archivo temporal y por último cargar el archivo en el control image.

Ahora, si la esquina superior izquierda de tu imagen está dentro de la celda C3, entonces ocupa la siguiente macro.

Private Sub UserForm_Activate()
'Por.DAM
    hoja = "Hoja1"
    For Each img In Sheets(hoja).DrawingObjects
        alto = img.Top
        izq = img.Left
        If img.Top >= Sheets(hoja).Range("C3").Top And _
            img.Left >= Sheets(hoja).Range("C3").Left Then
            imagen = img.Name
            Exit For
        End If
    Next
    If imagen = "" Then Exit Sub
    archivo = "C:\imagentemporal.JPEG"
    With Sheets(hoja).DrawingObjects(imagen)
        anc = .Width
        alt = .Height
        .CopyPicture
    End With
    Sheets(hoja).Shapes.AddChart
    With Sheets(hoja).ChartObjects(1)
        .Width = anc
        .Height = alt
        .Chart.Paste
        .Chart.Export archivo
        .Delete
    End With
    Image1.Picture = LoadPicture(archivo)
End Sub

Si la esquina superior izquierda de tu imagen no está dentro de la celda C3, pero conoces el nombre de la imagen, entonces ocupa esta macro:

Private Sub UserForm_Activate()
'Por.DAM
    hoja = "Hoja1"
    imagen = "2 imagen"
    archivo = "C:\imagentemporal.JPEG"
    With Sheets(hoja).DrawingObjects(imagen)
        anc = .Width
        alt = .Height
        .CopyPicture
    End With
    Sheets(hoja).Shapes.AddChart
    With Sheets(hoja).ChartObjects(1)
        .Width = anc
        .Height = alt
        .Chart.Paste
        .Chart.Export archivo
        .Delete
    End With
    Image1.Picture = LoadPicture(archivo)
End Sub

Cambia en las macros "Hoja1" por el nombre de la hoja que tiene la imagen.

Cambia "2 imagen" por el nombre de tu imagen.

Cambia "C:\imagentemporal.JPEG", por el nombre de archivo que quieras. Este archivo es temporal y te lo va a poner en la raíz del disco C:

Muchas Gracias, es lo que quería, no se me abría ocurrido nunca.

Hasta la próxima consulta.

Bye

Hola Dante, quería solicitar una petición

Espero que se pueda, estaba viendo algunas respuesta que has echo, y creo que vi sobre la forma de hacer una macro y poder tomar fotografía a través de la webcam de un Laptop (notebook) y no puedo ver esta, donde enviaste un link de DropBox.

Espero que se pueda...

Desde Ya muchas gracias.

Puedes crear una nueva pregunta, si gustas la puedes dirigir a Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas