Cargar y mantener imagen en botón de comando

Ante todo mis saludos, tengo un userform en vba con un botón de comando, en el cual con una macro cargo una imagen en dicho botón, la macro que tengo carga la imagen, pero yo lo que quiero es que si cierro el userform o el documento de excel, al volver a carga el formulario la imagen que había seleccionado se mantenga en ese botón de comando a no ser que decida colocar otra, pero que siempre se mantenga la ultima imagen seleccionada, no sé si me he explicado bien, y gracias de antemano. La macro que tengo es:

Private Sub CommandButton1_Click()
On Error Resume Next

Dim foto As Variant
foto = Application.GetOpenFilename(FileFilter:= _
 "Imagen (*.gif;*.jpg;*.jpeg;*.bmp), *.gif;*.jpg;*.jpeg;*.bmp", _
 Title:="Seleccionar imagen", MultiSelect:=False)

If Not IsEmpty(CommandButton1.Picture) Then
 CommandButton1.Picture = Nothing
 End If
CommandButton1.Picture = LoadPicture(foto)
End Sub

1 Respuesta

Respuesta
1

[Hola

Podría almacenar la ruta de la imagen en una celda de una hoja que podría estar oculta (o "muy oculta"). Yo lo dejaría así:

Private Sub CommandButton1_Click()
On Error Resume Next
Dim foto As Variant
foto = Application.GetOpenFilename(FileFilter:= _
     "Imagen (*.gif;*.jpg;*.jpeg;*.bmp), *.gif;*.jpg;*.jpeg;*.bmp", _
        Title:="Seleccionar imagen", MultiSelect:=False)
If Not IsEmpty(CommandButton1.Picture) Then
CommandButton1.Picture = Nothing
End If
CommandButton1.Picture = LoadPicture(foto)
Worksheets("Hoja1").Range("A1") = foto
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Picture = LoadPicture(Worksheets("Hoja1").Range("A1"))
End Sub

Obviamente tú reemplaza el nombre de la hoja y la celda por la que tú desees.

Abraham Valencia

PD1: Puede almacenarse en otros archivos también

PD2: También puedes forzar el cambio de las propiedades del botón pero es un poco más complicado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas