Seleccionar Imagen desde VBA Excel

Necesito desde mi formulario, seleccionar una imagen de un directorio que siempre se localiza en "C:\Programa\Images\" pero que al seleccionarla, diga en la etiqueta "Label1.Caption" (al lado del botón), el nombre de la imagen que selecciono, con el fin de que el formulario guarde una ruta compuesta que sería el directorio ya establecido: "C:\Programa\Images\" y el nombre de la imagen .JPG" no se si me explico?

1 Respuesta

Respuesta
2

¿Tienes el libro ya hecho?. Así inserto el código en él.

Si lo tienes mándamelo a

[email protected]

Manda también un par de imágenes para probar.

Pon como asusto del e-mail el título de la pregunta.

No he entendido muy bien lo que quieres. Pero me parece que se consigue cambiando la línea donde pones el valor paras Ruta

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
'abre la ventana de selección de archivos para seleccionar la imagen
Ruta.Caption = "C:\Programa\Images\" & Nombre.Text & ".JPG"
End If
End Sub

Si no es eso vuélveme a preguntar y dame más detalles.

Cuando le das click al CheckBox1 entonces quisiera que se abriera algo como esto: para seleccionar una imagen que se llama 14000.JPG o cualquier otra, y una vez que la seleccióne que la ruta me diga: C:\Programa\Images\ y el nombre de la imagen que seleccioné y quedaría así: C:\Programa\Images\14000.JPG para guardarlo en la columna de rutas.

No se si ahora si me explico que deseo. Es buscar la Imagen para seleccionarla desde Excel

Ahora si lo he entendido, creo que lo que necesitas es esto.

Private Sub CheckBox1_Click()
 Dim GuardaRutaActual As String
 If CheckBox1 = True Then
   'abre la ventana de seleccion de archivos para seleccionar la imagen
    GuardaRutaActual = CurDir
    ChDir "C:\Programa\Images\"
    Ruta.Caption = Application.GetOpenFilename("Ficheros de imagen JPG, *.JPG")
    ChDir GuardaRutaActual
 End If
End Sub

Para que el cuadro de diálogo muestre el directorio de las imágenes C:\Programa\Images\ debemos cambiar a él ChDir, pero antes guardamos el directorio actual para luego volver al actual como si no hubiera pasado nada.

Ya me dirás si te sirve.

Excelente ValeroASM y para salir de la duda (abusando de tu amabilidad) puedo programar que siempre abra en esa carpeta específica? ("C:\Programa\Images\") ???

Si puede hacerse, pero antes voy a hacer bien la anterior, no contaba con que se pudiera estar en otra unidad y para cambiar de unidad hace falta otra orden. Entonces sería así

Private Sub CheckBox1_Click()
  Dim GuardaUnidadDirectorio As String
  If CheckBox1 = True Then
    'abre la ventana de seleccion de archivos para seleccionar la imagen
     GuardaUnidadDirectorio = CurDir
     ChDrive "C:"
     ChDir "C:\Programa\Images\"
     Ruta.Caption = Application.GetOpenFilename("Ficheros de imagen JPG, *.JPG")
     ChDrive GuardaUnidadDirectorio
    ChDir GuardaUnidadDirectorio
  End If
End Sub

Y si quieres que al abrir el libro se establezca ya ese directorio puedes poner la orden en la macro Auto_Open() que tienes o en una macro Workbook_Open() creada en ThisWorkbbok

Es decir; en un módulo creado sería:

Sub Auto_Open()
  MsgBox "¡Hola ValeroASM, gracias por brindarme tu valiosa ayuda!", 64, "Bienvenido"
  ChDrive "C:"
  ChDir "C:\Programa\Images\"
End Sub

O en el módulo ThisWorkbook sería así

Private Sub Workbook_Open()
   ChDrive "C:"
   ChDir "C:\Programa\Images\"
End Sub

Y entonces ya no serían necesarias muchas cosas de la macro CheckBox1_Click()

Private Sub CheckBox1_Click()
   If CheckBox1 = True Then
     'abre la ventana de seleccion de archivos para seleccionar la imagen
      Ruta.Caption = Application.GetOpenFilename("Ficheros de imagen JPG, *.JPG")
   End If
End Sub

Y eso es todo.

Excelente tu ayuda amigo. Bendiciones para ti y tu familia, gracias por compartir tus conocimiento y recompensado será tu aporte.

Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas