MACRO o código para llamar una imagen

Como puedo asignar una macro para llamar una imagen únicamente para consulta y pueda cerrarla luego después de mi consulta.

Nunca lo he realizado ni tengo idea de como hacerlo.

1 respuesta

Respuesta
1

¿Pero quieres abrir la imagen cuando presiones un botón o una celda o en un formulario?

lo que necesito es abrir la imagen con un botón solo para consulta. y que tenga opción de cerrar al haber terminado su consulta.

Con la siguiente macro abres una imagen, cambia "c:\trabajo\varios\", por el nombre de la carpeta. Cambia "foto5.jpg", por el nombre de la imagen, cambia "D4" por la celda en la que quieras que te aparezca.

Sub im4()
'Por.Dante Amor
    ruta = "c:\trabajo\varios\"
    arch = "foto5.jpg"
    '
    Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
    With fotografia
        .Name = "imagen temporal"
        .Top = Range("D4").Top
        .Left = Range("D4").Left
        .OnAction = "cerrar"
    End With
    '
    'eliminamos el objeto
    Set fotografia = Nothing
End Sub

Copia en el mismo módulo la siguiente macro para cerrar la imagen, para cerrar la imagen solamente tienes que presionar click sobre la imagen

Sub cerrar()
'Por.Dante Amor
    ActiveSheet.Shapes("imagen temporal").Delete
End Sub


Si no tienes el nombre de la carpeta o de la imagen, con esta macro la puedes seleccionar:

Sub im6()
'Por.Dante Amor
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo de excel"
        .Filters.Clear
        .Filters.Add "Todos", "*.*"
        .Filters.Add "imagen", "*.jpg*"
        .FilterIndex = 2
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        If .Show Then
            '
            Set fotografia = ActiveSheet.Pictures.Insert(.SelectedItems.Item(1))
            With fotografia
                .Name = "imagen temporal"
                .Top = Range("D4").Top
                .Left = Range("D4").Left
                .OnAction = "cerrar"
            End With
            '
            'eliminamos el objeto
            Set fotografia = Nothing
        End If
    End With
End Sub

De igual forma inserta en el mismo módulo la siguiente macro para borrar la imagen al presionar click sobre ella

Sub cerrar()
'Por.Dante Amor
    ActiveSheet.Shapes("imagen temporal").Delete
End Sub

Saludos.Dante Amor

HOLA

DANTE puse lo siguiente: 

Sub im4()
'Por.Dante Amor
    ruta = "c:\users\usuario\desktop\SERVICIO A DOM\RESPALDO REPORTE"
    arch = "CENTRO.png"
    '
    Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
    With fotografia
        .Name = "imagen temporal"
        .Top = Range("B12").Top
        .Left = Range("B12").Left
        .OnAction = "cerrar"
    End With
    '
    'eliminamos el objeto
    Set fotografia = Nothing
End Sub
Sub cerrar()
'Por.Dante Amor
    ActiveSheet.Shapes("imagen temporal").Delete
End Sub

y me salio:

"no se puede tener la propiedad insert de la clase Pictures."

y cuando debe salir la imagen? con un boton o solo al posicionarte en la celda? o al poner un texto?

Al final de tu ruta tienes que poner la diagonal

ruta = "c:\users\usuario\desktop\SERVICIO A DOM\RESPALDO REPORTE\"

Si ejecutas la macro desde un botón aparece en automático la imange, cuando te aparezca, le das click en la imagen y se elimina

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas