Macro para seleccionar Fotografía y colocarla en un control image

Tengo un formulario VBA con un control image (Fotografía) y un textbox (Txtcedula), lo que deseo, en vista de que otros métodos me han fallado, es que mediante un botón pueda seleccionar una fotografía y cargarla en el control image, una vez esté en el control image, entonces, al dar clic en un botón guardar, la foto se almacene en la carpeta donde está guardado el fichero que contiene el formulario y el nombre de esa foto sea el que esté al momento de guardar en el textbox cedula.

1 respuesta

Respuesta
3

Te anexo la macro para cuando le des doble click al control Image te abra la ventana de diálogo y puedas seleccionar el archivo con la foto.

Private Sub Fotografia_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If TxtCedula = "" Then
        MsgBox "Captura la cédula"
        TxtCedula.SetFocus
        Exit Sub
    End If
    Application.ScreenUpdating = True
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo con la imagen"
        .Filters.Clear
        .Filters.Add "All Files", "*.*"
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then
            Fotografia.Picture = LoadPicture(.SelectedItems.Item(1))
        End If
    End With
    Application.ScreenUpdating = True
    Me.Repaint
End Sub

Sal  u dos

¡Gracias! Dante, voy a probarla y te cuento en un momento.

Hola Dante, muchas gracias por la macro, funciona muy bien. Me permite seleccionar la fotografía y colocarla en el control image.

Sin embargo, no está copiando la foto en la ubicación donde se encuentra el fichero que contiene el formulario.

Las fotos por ser tomadas con una web cam, entonces, se almacenan por defecto en una ubicacion con un nombre definido por ese software, yo debo ir a esa ubicación, seleccionar la imagen y cargarla en el control image, una vez eso, entonces al guardarla, se debe renombrar con el texto del txtcedula y se debe copiar la foto en la ubicación del fichero que contiene el formulario.

Solo me falta ese detalle. Muchas gracias por tu paciencia.

Luis Carlos

Macro actualizada

Private Sub Fotografia_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If TxtCedula = "" Then
        MsgBox "Captura la cédula"
        TxtCedula.SetFocus
        Exit Sub
    End If
    Application.ScreenUpdating = True
    ruta = ThisWorkbook.Path & "\"
    nomb = TxtCedula
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo con la imagen"
        .Filters.Clear
        .Filters.Add "All Files", "*.*"
        .AllowMultiSelect = False
        .InitialFileName = ruta
        If .Show Then
            arch = .SelectedItems.Item(1)
            punto = InStrRev(arch, ".")
            ext = Mid(arch, punto)
            FileCopy arch, ruta & nomb & ext
            Fotografia.Picture = LoadPicture(ruta & nomb & ext)
        End If
    End With
    Application.ScreenUpdating = True
    Me.Repaint
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas