Problema con Imágenes en Excel VBA

Estoy realizando un proyecto en VBA con formularios, donde debo ingresar una imagen desde un botón, requiero que luego de insertarla en la hoja de cálculo, me guarde:

1 - La ruta donde escogí la imagen y que cada vez que quiera ingresar otra imagen me lleve a la carpeta por defecto.

2 - Coloque el nombre de la imagen seleccionada en una celda específica en la hoja de cálculo.

Respuesta
1

Te dejo una macro con comentarios para que puedas ajustar algunos detalles:

- Ubicación de los campos Ruta y Nombre de la imagen capturada

- Colocar o no, el formato de imagen buscado (solo utilizar 1 de las 2 instrucciones) ajustando el texto 'jpg' por el que corresponda.

Sub capturaImagen()
'x Elsamatilde
'si ya se conoce la ruta se accede a ella
If [J1] <> "" Then
    ruta = [J1]
    ChDir ruta
End If
'si ya se sabe el formato de imagen a buscar se utiliza la 2da instrucción colocando la extensión buscada
'foto = Application.GetOpenFilename(Title:="Seleccione su imagen")
foto = Application.GetOpenFilename(Title:="Seleccione su imagen", _
    Filefilter:=("Formato jpg(*.jpg),*.jpg"))
' si no se presionó la opción de Cancelar
If foto <> "Falso" Then
    'inserta la imagen seleccionada
    ActiveSheet.Pictures.Insert(img01).Select
    'separar ruta y nombre
    archi = Mid(foto, (InStrRev(foto, "\") + 1))
    ruta = Left(foto, Len(foto) - Len(archi) - 1)
    'colocar campos en ciertas celdas de la hoja activa
    [J1] = ruta: [J2] = archi
End If
End Sub

La función InStrRev devuelve la posición de una cadena (en este caso "\") dentro de otra (en este caso el nombre del archivo) a partir de la última posición, salvo que se indique la posición de inicio.

PD) En videos 49 y 51 de mi canal encontrarás más ejemplos desarrollados con imágenes.

Sdos y no olvides valorar la respuesta.

Elsa

https://www.youtube.com/c/ElsaMatilde 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas