Imagen de botón

26/08/2004 - 07:42 por MarianoH | Informe spam
Amigos, recurro una vez más a sus conocimientos.

Quiero crear un botón con dos imágenes. Al apretarlo corre una rutina y
cambia entre una imagen y otra.
Se como crear una barra de herramientas con los botones, y como cambiar la
cara del botón manualmente desde excel.
Pero no se como hacer con código para almecenar las imágenes y cambiar entre
una y otra, ya que la propiedad FaceId aparentemente hace referencia solo a
los íconos que viene con Excel y usa 0 si el icono es personalizado.

Agradezco cualquier orientación.

Saludos.

Mariano A. Hernández
 

Leer las respuestas

#1 Héctor Miguel
26/08/2004 - 11:03 | Informe spam
hola, Mariano !

... crear un boton con dos imagenes. Al apretarlo corre una rutina y cambia entre una imagen y otra.
Se ... crear ... y ... cambiar la cara del boton manualmente desde excel.
... no se como .. con codigo ... almecenar las imagenes y cambiar entre una y otra [...]



'dentro' del procedimiento que le has asignado al boton ['antes de' y 'despues de' ejecutar 'las acciones']...
puedes usar la propiedad 'FaceId' de un control [boton de comando] en una barra [commandbar]
=> si deseas utilizar las 'caras' de los botones 'integrados' de excel [o de algun otro boton en alguna otra barra]
o... la propiedad ->LoadPicture = "C:\Carpeta[\Sub-carpeta]\imagen.bmp"<-
=> si ya tienes una imagen [p.e. un .BMP de 16×16 pixeles]
=>ADEMAS<= se necesita 'truquear' con la propiedad 'Visible' [re]puesta en True :-))
[efecto 'similar' se requiere en algunos casos con la propiedad 'Repaint' en formularios -userforms-]

el siguiente ejemplo 'supone' que existe...
- una barra de herramientas llamada 'Temporal'
- un control [boton] -en este caso, estoy 'usando' el primero de 'la serie'-
[puedes usar la propiedad 'Caption' del control y el nombre de la barra 'donde lo hayas puesto']
- y... 'switchea' la imagen del boton [carita sonriente mientras se ejecuta y... carita 'triste' mientras 'no']
[lo de la propiedad 'State' -si presionado o no-... 'va de gratis'] :D

si cualquier duda... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ->la macro asignada<- al boton_1 ==Sub MiMacro()
With Application.CommandBars("Temporal").Controls(1)
.State = msoButtonDown: .FaceId = 59: .Visible = True
End With
MsgBox "Hola" ' <- pon aqui tus instrucciones 'completas'
With Application.CommandBars("Temporal").Controls(1)
.State = msoButtonUp: .FaceId = 276: .Visible = True
End With
End Sub

Preguntas similares