Cambio de Foto con Boton

Hola csarxex
El dia de hoy te tengo una pregunta de un formulario que utilizamos para cambiar fotos en el mismo form, pues estas varían con el tiempo, para ello tenemos un botón que me permite buscar la foto en el PC y cambia la foto, pero cuando se cierra el formulario y se vuelve a abrir ya no aparece la foto antes seleccionada (la idea es que la foto quede grabada), realmente no se que hacer Csarxex por eso recurro a tu conocimiento. El código es el siguiente.
Private Sub CommandButton1_Click()
'Cargar la ruta en donde esta la imagen para guardarlo en la celda correspondiente
On Error Resume Next
Dim Ruta As String
Ruta = Application. GetOpenFilename
If Ruta <> False Then
'cargamos la imagen
Me.Image1.Picture = LoadPicture(Ruta)
XCmpRuta = Ruta
End If
ActiveWorkbook. Sabe
End Sub

1 respuesta

Respuesta
1

Donde dice

ActiveWorkbook. Sabe

Debería decir

ActiveWorkbook. Save

¿Correcto?

Disculpa si esta como

ActiveWorkbook. Save

fue un error de transcripción pero en el código esta bien y no funciona, cuando cierro el formulario la foto se pierde.

Gracias por tu pronta respuesta

Creo que depende de lo que tengas en

Sub UserForm_Initialize()

...

end sub

Cada vez que abras el formulario se ejecuta esa rutina ...

Revisa que tienes en esa rutina

En esta rutina de UserForm_Initialize(), no tengo nada. Si quieres te envío este link para que veas lo que tengo.

https://www.dropbox.com/s/z9dmvz4uyw5a2jy/cambiar%20foto%20en%20formulario.xls

esa rutina UserForm_Initialize

Inicializa el todo el UserForm

Si nada tiene, inicializa todo a nulo

Asi que te sugiero

Guardar en la hoja la ruta de la imagen

Range("Z1").FormulaR1C1 = xCmpRuta

y poner en la inicialización la imagen guardada

Private Sub UserForm_Initialize()
Ruta = Range("Z1").FormulaR1C1
Me.Image1.Picture = LoadPicture(Ruta)
End Sub

y tu rutina quedaría así:

Private Sub CommandButton1_Click()
On Error Resume Next
Dim Ruta As String
Ruta = Application.GetOpenFilename
If Ruta <> False Then
Me.Image1.Picture = LoadPicture(Ruta)
xCmpRuta = Ruta
Range("Z1").FormulaR1C1 = xCmpRuta
End If
ActiveWorkbook.Save
End Sub

Es buen aporte, lo único es que la aplicación queda amarrada al computador y no es portable (pues las fotos quedan con una dirección en este). Existe alguna forma de evitar esto.

Correcto y lógico, esa parece la idea, a donde lleves la aplicación

Esta usaría las fotos disponibles

¿No es esa la idea?

Si borras las fotos de tu maquina tampoco funcionaria ¿correcto?

Si haces un programa para que prepare café,

Funcionará mientras tengas el café molido, si no tienes el café el programa deja de funcionar

A menos que este tamaien tenga como fabricar el café molido ¿correcto?

O sea,

¿Querrías qué el archivo de excel tenga coleccionado, dentro, todas las fotos?

Si es eso que estén dentro del archivo de Excel, pero se
da la dificultad del tamaño de la imagen (unas son más grandes que otras), al
intentar que cuadren en una celda determinada algunas se desbordan y no son
tomadas por completo.

Muchas Gracias por tu colaboración y dedicación.

Al botón donde pones la imagen puedes prepararlo para que se adapte al tamaño de la imagen

(O cre las imágenes del mismo tamaño todas)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas