You are on page 1of 9

UserForm con icono en Excel

POSTED ON 10/11/2010 IN MACROS, MACROS EXCEL


Hola Cmo estn?
Para las usuarias y usuarios que usan Macros, VBA de Excel y sus UserForm, estoy seguro que es
una carencia el no saber cmo colocar un icono a dicho objeto, como es clsico encontrarlo en otros
formularios de nuestro sistema operativo. Ya que Excel no trae por defecto alguna propiedad que
agregue dicho icono a nuestros UserForm, debemos recurrir a las funciones del API de Windows.
Ya he definido en otro artculo (http://excellentias.com/userform-con-botones-maximizar-minimizar/) lo
que es el API de Windows as como algunas de sus funciones, incluyendo una que usaremos hoy
(FindWindow). Tambin mencione ah lo que es el ThunderDFrame, pero para comprender mejor
como insertar un icono a un UserForm aun nos faltara definir algunas otras cosas como:
SendMessage: Funcin del API de Windows que enva un mensaje a un objeto receptor con el fin de
que este lo procese y/o interprete
WM_SETICON: Constante que asocia un nuevo icono grande o pequea con una ventana
Reparacin de Computadora
a domicilio 24 horas 4778-0211 Feriados y Fin de Semana
www.facebook.com/pchelping.la
Tweet
4
0
2
Like
www.facebook.com/pc
a domicilio 24 horas 47
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
1 de 9 06/07/2013 20:47
ICON_SMALL: Asociado a WM_SETICON. El sistema muestra el icono pequeo en el titulo de la
ventana
ICON_BIG: Asociado a WM_SETICON. El sistema muestra el icono grande en el cuadro de dilogo
ALT+TAB
Ahora que sabemos que significan y/o para que sirven esos cdigos, manos a la obra.
Agrega un UserForm a tu Excel, ahora coloca en l un objeto Image (En mi caso el nombre ser
Image1). En la propiedad Picture busca el icono (*.ico) de tu preferencia y usalo en tu objeto
Image. Ese icono es el que aparecer en el titulo de tu UserForm. Cambia la propiedad Visible de
tu objeto Image a False (solo si lo deseas).
Ahora copia y pega este cdigo en el modulo de tu UserForm:
Option Explicit
Private Const WM_SETICON = &H80
Private Const ICON_SMALL = 0&
Private Const ICON_BIG = 1&
Private Declare Function FindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Sub UserForm_Initialize()
Dim hwnd As Long
Dim hIcon As Long
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
2 de 9 06/07/2013 20:47
'capturamos la imagen de nuestro objeto "Image"
hIcon = Image1.Picture
'Obtenemos el "Handle" del Userform
hwnd = FindWindow("ThunderDFrame", Me.Caption)
'Enviamos el mensaje de "cambio" al UserForm
SendMessage hwnd, WM_SETICON, ICON_SMALL, ByVal hIcon
SendMessage hwnd, WM_SETICON, ICON_BIG, ByVal hIcon
End Sub
Si todo sali bien, deberas tener incluido tu icono en tu UserForm, obteniendo un resultado como
este:
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
3 de 9 06/07/2013 20:47
Comparte:
Like 2 Tweet 4 0
Log in to Reply
Bueno, espero que les sea de mxima utilidad.
Saludos,
El Equipo EXCELLENTIAS.COM
Tags: Excel VBA, Macros Excel, UserForm
InforCom
Posted 969 days ago
Muy bueno!!!
DOS Print driver for USB
Printfil capture PRN: or LPT1-9 forward it to USB or other printers
www.PrintFil.com
Share Share
Macro en Excel para
crear un indice de
hojas
Proteccin y
desproteccin de hojas
en Excel a travs de
VBA
Habilitar Esquema de
agrupacin con la hoja
protegida en Excel
Impedir que los
usuarios impriman un
libro MS Excel
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
4 de 9 06/07/2013 20:47
Pero si copias el Codigo tal como esta mandara un error, hay que copiar asi:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
Option Explicit
Private Const WM_SETICON = &H80
Private Const ICON_SMALL = 0&
Private Const ICON_BIG = 1&
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub UserForm_Initialize()
Dim hwnd As Long
Dim hIcon As Long
'capturamos la imagen de nuestro objeto "Image"
hIcon = Image1.Picture
'Obtenemos el "Handle" del Userform
hwnd = FindWindow("ThunderDFrame", Me.Caption)
'Enviamos el mensaje de "cambio" al UserForm
SendMessage hwnd, WM_SETICON, ICON_SMALL, ByVal hIcon
SendMessage hwnd, WM_SETICON, ICON_BIG, ByVal hIcon
End Sub
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
Es el mismo codigo, solo que no existen las separacion "_", porque manda a la siguiente
linea () y ahi es donde envia error!
Gracias, me sirvio de mucho
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
5 de 9 06/07/2013 20:47
Log in to Reply
Log in to Reply
Log in to Reply
Log in to Reply
jmaterano
Posted 969 days ago
Hola Cmo ests?
Esperamos te sea de mxima utilidad, muchas gracias por la aclaratoria.
Saludos
Raul
Posted 938 days ago
Saludos. Tengo un userform al cual le aplique el codigo publicado, incluyendo las
correciones de las _ y las comillas ya que con las comillas inclinadas el codigo sale en
rojo, tienen que ser las comillas rectas pero aun asi me sale un error que dice que los
comentarios deben colocarse despues de End Sub, End Function, y el error me lleva al
siguiente codigo sombreado:
Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Me pueden ayudar con esto porfavor si no es mucha molestia?
Gracias
Raul
Posted 937 days ago
Cabe indicar que uso MS Excel 2007, y disculpen la ignorancia, recien me inicio en vba,
asi que tambien preguntaria si este codigo va en un modulo nuevo o no?
Gracias por despejar mis dudas.
InforCom
Posted 937 days ago
Raul, el cdigo debera Funcionar bien, aqui te envo un link donde est el formulario ya
revisado y probado en mi mquina, espero a ti te funcione
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
6 de 9 06/07/2013 20:47
Log in to Reply
Log in to Reply
Log in to Reply
http://www.grupoinforcom.net/FormconIcono.rar
Espero te sirva!
Martha
Posted 866 days ago
Los felicito por tan excelentes aportes que nos ayudan a aprender para poder aplicarlos.
Gracias
dcedeno
Posted 866 days ago
Hola Martha, gracias a t.
Comentarios como el tuyo nos motivan a continuar da a da trabajando por
construir y fortalecer nuestra Comunidad. Un abrazo y mucho xito.
Melros
Posted 784 days ago
Hola estimados amigos.
Mil gracias por sus muy valiosos aportes.
He aplicada el codigo tal cual, corregi los _ y se ejecuta sin problemas, pero se me
genera ningun cambio, o sea, el Userform aparace de igual forma, el icono no se habilita.
Por que ser, si el objeto imagen lo inserta como lo orientan pero como les comento no
genero ningun cambio.
Me gusta mucho trabajar con userform y me sera de mucha utilidad para darles otra
vista com mas esttica.
Espero sus respuesta.
De antemano, mil gracias
dcedeno
Posted 780 days ago
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
7 de 9 06/07/2013 20:47
Log in to Reply
Log in to Reply
Log in to Reply
Log in to Reply
Hola!!! Que versin de Excel ests empleando?
vicente
Posted 395 days ago
Excelente
dcedeno
Posted 966 days ago
Hola Abraham, Es necesario que corregir algn cambio en la edicin? Quizs puede ser
un tema del visor del lenguaje que deba arreglar. No dudes en avisarme cualquier
detalle. Saludos.
avalencia
Posted 966 days ago
Hola Daniel:
Las lineas que terminan con guion bajo "_", no deben estar separadas por un renglon en
blanco de las que le siguen.
Solo eso
Saludos
Abraham
Trackbacks for this post
Bitacoras.com 1.
Tweets that mention UserForm con icono en Excel | Excellentias.com - Excel, Infovis & BI
Magazine -- Topsy.com
2.
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
8 de 9 06/07/2013 20:47
You must be logged in to post a comment.
Blog Conocenos Misin, Visin y Valores Quienes Somos
UserForm con icono en Excel | Excellentias.com - Comunidad de Excel ... http://www.excellentias.com/2010/11/userform-con-icono-en-excel/
9 de 9 06/07/2013 20:47

You might also like