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