Como insertar ruta de imagen desde formulario

Tengo un Formulario donde quiero que un control de imagen al recibir el foco me abra una carpeta donde tengo todas las imágenes guardadas y poder seleccionar una imagen para guardar la ruta en una tabla excel

2 Respuestas

Respuesta
2

Primero, un image control no puede recibir el foco. Lo que puedes hacer es dar click en Image y que se abra el explorador para seleccionar una imagen.

Segundo, la ruta y el nombre del archivo de la imagen selecciona, deberá guardarse en un textbox o un label, te recomiendo el label.

Entonces, para abrir el explorador y seleccionar una imagen, pon el siguiente evento en tu userform.

Private Sub Image1_Click()
'Por.Dante Amor
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo imagen"
        .Filters.Clear
        .Filters.Add "Todos", "*.*"
        .Filters.Add "Jpg", "*.jp*"
        .Filters.Add "Bmp", "*.bm*"
        .FilterIndex = 2
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        '.Show
        If .Show Then
            archivo = .SelectedItems.Item(1)
            Image1.Picture = LoadPicture(archivo)
            Label10.Caption = archivo
            Me.Repaint
        End If
    End With
End Sub

Para pasar el dato de la ruta y nombre del archivo que contiene la imagen, puedes poner algo como esto:

'Pasar datos a la hoja
    Range("M" & fila) = Label10. Caption

Nota: Lo anterior solamente es un ejemplo, no sé cómo estás pasando los datos del userform a la hoja, la idea es que en la columna M debes poner el contenido del Label10


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Perdóname, pero no lo entiendo muy bien, ya que no soy nada experto en esto, estoy aprendiendo a programar en excel hace un par de meses y por necesidad, de todas formas he incluido un botón para haber si es más fácil y que me habrá la carpeta de imágenes y poder escoger la imagen que necesite, un saludo y mil gracias

Pon el código en tu botón de "Seleccionar imagen"

Private Sub CommandButton1_Click()
'Por.Dante Amor
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo imagen"
        .Filters.Clear
        .Filters.Add "Todos", "*.*"
        .Filters.Add "Jpg", "*.jp*"
        .Filters.Add "Bmp", "*.bm*"
        .FilterIndex = 2
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        '.Show
        If .Show Then
            archivo = .SelectedItems.Item(1)
            Image1.Picture = LoadPicture(archivo)
            Label10.Caption = archivo
            Me.Repaint
        End If
    End With
end sub

Antes debes crear un label y en name le pones Label10

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Buenas tardes Dante,gracias por tu pronta respuesta he hecho el código como tú me has explicado,me abre las carpetas y todo funciona muy bien,pero al seleccionar la imagen no la muestra en el cuadro de imagen solo me da un pantallazo,y una cosa que no entiendo bien es en title=("seleccione archivo imagen")a que me tengo que referir.

perdoname pero mis conocimientos son muy escasos y estoy aprendiendo con vuestras estupendas explicaciones.

Un saludo y gracias por tu ayuda

Le das click a tu botón "seleccionar imagen"

Te abre el explorador de windows

Selecciona la carpeta donde tienes tu imagen

Selecciona tu imagen

Presiona Aceptar

La imagen que selecciones aparecerá en el control Image de tu userform

Estupendo ya funciona, pero ahora al darle aceptar hay veces que me sale un aviso de que no encuentra el archivo seleccionado y otras veces si o aparece en el userform al darle doble click,discúlpame por ser tan torpe

Tal vez el archivo que seleccionas tiene un formato que no reconoce excel, procura que tus imágenes sean jpg o jpeg

Perdona por las molestias Dante, lo he comprobado ahora mismo y todas las imágenes son jpg

hay alguna manera de que te pueda enviar el archivo?para que lo veas

Sí, envíame tu archivo de excel con la macro.

También envíame 2 imágenes, una que sí se vea y otra que no se vea.

En total envíame 3 archivos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Rafael Sotillo” y el título de esta pregunta.

Respuesta
1

Hice algo que me sirvió hace poco

Tengo los nombres de las imágenes en una carpeta llamada "imágenes" valga la redundancia.

Entonces yo lo tengo cuando paso el mouse sobre el botón me sale la imagen.

Este es el código que ocupo

Private Sub CommandButton5_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    NAVEGACION.Image1.Picture = LoadPicture(ActiveWorkbook.path & "\imagenes\navegacion_servicio_a_domicilio.jpg ")
End Sub

Cambia: Navegación por el nombre de tu formulario

Entonces lo que se me ocurre para ti seria algo así al ABRIR tu formulario y y Cargar tus datos, suponiendo que en FAMILIA:textbox2 esta la imagen que quieres mostrar:

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
NAVEGACION.Image1.Picture = LoadPicture(ActiveWorkbook.path & "\imagenes\" & TextBox2.Value & ".jpg")
End Sub

 usa esto para que enseñes tu imagen si necesidad de guardarlo en tu libro

ya si quieres tener la ruta de la imagen es:

MsgBox ("La ruta del Libro es " & ActiveWorkbook.path & "\imagenes\navegacion_servicio_a_domicilio.jpg")

espero te ayude, es mi primera respuesta que hago jeje, siempre pregunto...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas