............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

controltiptex multilinea

Ver el tema anterior Ver el tema siguiente Ir abajo

controltiptex multilinea

Mensaje por albersil el Sáb Jun 26, 2010 3:27 pm

Buenas, a to2. Tengo una aplicación para realizar cuestionarios de calidad que utiliza el controltiptex para facilitar ayuda a los usuarios sobre las preguntas que se le pide que evalue, pero éstas preguntas son demasiado largas y no caben en la pantalla. Necesito que alguien me arroje luz sobre algún código para que el controltiptex salga en varias lineas y así aparezca todo el texto. Salu2 y Gracias.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Sáb Jun 26, 2010 3:43 pm

Perdon, que rol juega Excel en esa aplicacion???.
si se trata de un archivo de excel haria falta verlo, subelo a skydrive y pega el Link.

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Dom Jun 27, 2010 6:58 am

Ok. Mañana lo haré, ya que el archivo está en el ordenador de la oficina. Muchas gracias por contestar.Ah por cierto, se trata de un sistema digital de recogida de datos en un cuestionario realizado en Excel. Los Alumnos evaluan a los profesores y el resto de medios que se ponen a su disposición, mediante este cuestionario. Está en excel para aprovechar su gran potencia, para refundir luego las puntuaciones emitidas todos los alumnos en un único documento con porcentajes, para sacar conclusiones e intentar mejorar la prestación docente. Salu2 y muchas gracias.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Dom Jun 27, 2010 9:28 am

Bueno indagando a través de la web he encontrado información suficiente como para solventar mi problema, no exactamente con la propiedad controltiptex, pero usando un pequeño truco con un label. Aquí os dejo el ejemplo. Si alguien sabe cómo hacerlo con la propiedad Controltiptex, por favor que lo reporte. Gracias y Salu2.

[Tienes que estar registrado y conectado para ver este vínculo]


Última edición por albersil el Miér Jun 30, 2010 11:12 am, editado 1 vez

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Dom Jun 27, 2010 10:21 am

Extraido del Ejemplo aportado por albersil en el anterior Post

[Tienes que estar registrado y conectado para ver esa imagen]

ERRATA: el Segundo Label (de izquierda a derecha debe ser Label1 y no Label2 como puse

En el Modulo Thisworkbook
Código:
Private Sub Workbook_Open()
UserForm1.Show
End Sub

En el Modulo del Userform


Código:
Private Sub CommandButton1_Click()
MsgBox "Pasa el ratón por encima de la Etiqueta1"
End Sub

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label1.Visible = False
Label1.Caption = Cells(1, 1)

End Sub

Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label1.Visible = True
Label1.Caption = Cells(1, 1)

End Sub


Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Label1.Visible = False
Label1.Caption = Cells(1, 1)

End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Mar Jun 29, 2010 3:00 pm

Bueno, el ejemplo anterior me vale para un solo label, pero la aplicación de cuestionario de calidad tiene varios label distribuidos en multipaginas, así es que no se cómo adaptarlo para que funcione con todos los labels. A ver si alguien puede sacarme de las tinieblas. En la aplicación hay varias hojas, una llamada Blanca y otra llamada Calidad cuya finalidad es solo meramente estética. Además hay otra llamada Resultados que es donde están los datos que se quieren capturar y que se deben de mostrar al pasar el ratón encima de los labels. Con la propiedad controltiptex lo consigo, pero en pantalla pequeñas, cuando los comentarios son muy largos, no aparecen totalmente éstos comentarios, de ahí la necesidad de que se puedan mostrar en varias líneas. En este enlace está el archivo para que veais cómo es, se llama 01_cuestionario.xls. Salu2 y muchas gracias.

[Tienes que estar registrado y conectado para ver este vínculo]

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Mar Jun 29, 2010 5:18 pm

Segun veo llega la hora de usar Módulos de Clase para agregar evento a la clase. Me "obligas" a pensar, vere si alguien me gana de mano y te lo resuelve

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por Alef-Thau el Miér Jun 30, 2010 12:43 pm

Yo había hecho algo parecido pero que usaba 1 único label y varios textbox . Los textbox era donde habia que introducir la información que se pedía y el label, dependiendo del textbox, mostraba la ayuda a esa información.

Explicado seria así un label1 = Ayuda.
textbox1, texbox2, textbox3. = Datos.
Comenzamos con las propiedades del Label1 caption vacía y fondo transparente y sin marco.
Al ponernos en el textbox1 le pasamos al caption del label la ayuda para ese campo, al abandonarlo vaciamos el caption.
Al ponernos sobre el textbox2 pasamos al caption de label la ayuda de ese campo y al salir de el vaciamos el caption.
Lo mismo con el tercero. Es sencillo

Los captions se pueden o bien escribirlos allí o donde no cojerlos de celdas de una hoja como puso Gali.

Tambien se puede hacer que en vez de ser un Label sean uno por campo (en este caso 3) y que se vaya cambiando la visibilidad (oculto o visible) o bien en vez de labels tambien textbox pero estos pasandolos a efecto 0 y fondo transparente.

Es como, creo yo, la típica calculadora hecha en vb que usa u textbox como receptor de datos.

Aqui está el ejemplo, quiza muy engorrosos si lo mira Gali y lo perfila, mejor jejeje. Creo que esa es la idea que tenias no?


Alef-Thau

Masculino Cantidad de envíos : 22
Edad : 52
Ciudad - Pais : España
Version de Excel : actualmente 2010
Fecha de inscripción : 23/05/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Miér Jun 30, 2010 1:37 pm

La idea es definir un evento sobre todos los CommandButtons y no tener que definir el evento para cada uno (en tu caso hablas de textbox), el problema no esta en el Label sino en el Llamador (Caller)

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Miér Jun 30, 2010 4:10 pm

Alef-Thau escribió:Yo había hecho algo parecido pero que usaba 1 único label y varios textbox . Los textbox era donde habia que introducir la información que se pedía y el label, dependiendo del textbox, mostraba la ayuda a esa información.

Explicado seria así un label1 = Ayuda.
textbox1, texbox2, textbox3. = Datos.
Comenzamos con las propiedades del Label1 caption vacía y fondo transparente y sin marco.
Al ponernos en el textbox1 le pasamos al caption del label la ayuda para ese campo, al abandonarlo vaciamos el caption.
Al ponernos sobre el textbox2 pasamos al caption de label la ayuda de ese campo y al salir de el vaciamos el caption.
Lo mismo con el tercero. Es sencillo

Los captions se pueden o bien escribirlos allí o donde no cojerlos de celdas de una hoja como puso Gali.

Tambien se puede hacer que en vez de ser un Label sean uno por campo (en este caso 3) y que se vaya cambiando la visibilidad (oculto o visible) o bien en vez de labels tambien textbox pero estos pasandolos a efecto 0 y fondo transparente.

Es como, creo yo, la típica calculadora hecha en vb que usa u textbox como receptor de datos.

Aqui está el ejemplo, quiza muy engorrosos si lo mira Gali y lo perfila, mejor jejeje. Creo que esa es la idea que tenias no?


El ejemplo está bien, pero no es lo que necesito. Se tiene que mostrar la información por cada label del formulario en multilinea, ya que en pantallas y/o resoluciones pequeñas no cabe en pantalla y se corta. La información hay que recogerla de las celdas de la hoja llamada resultados. No tengo demasiada idea, pero me da en la nariz que no es tan fácil y por eso me pongo en vuestras expertas manos. Salu2.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por P@li el Lun Jul 05, 2010 11:40 pm

Hola, disculpen no haber participado antes, no lo hice porque hace tiempo que no entro al foro.
Mi respuesta ya estaba de antemano posteada en la sección APIs de Windows:

[Tienes que estar registrado y conectado para ver este vínculo]

Saludos!!
Pablo.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Mar Jul 06, 2010 11:00 am

P@li escribió:Hola, disculpen no haber participado antes, no lo hice porque hace tiempo que no entro al foro.
Mi respuesta ya estaba de antemano posteada en la sección APIs de Windows:

[Tienes que estar registrado y conectado para ver este vínculo]

Saludos!!
Pablo.

He bajado el ejemplo y lo he visto por encima y está muy bien, pero no se cómo hacer para adaptarlo a mi aplicación, teniendo en cuenta que el contenido del controltiptex debe ser extraido de una celda de una hoja donde el texto está completo. Es decir, ¿Cómo consigo partir la cadena entrera en varios trozos y que éstos trozos tenga la longitud correcta para adaptarse al ballon que aparece? Me parece que con mis pocos conocimientos nunca llegaré a poder hacer lo que necesito, pero muchísimas gracias por vuestro tiempo. Salu2.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por P@li el Mar Jul 06, 2010 12:10 pm

Aca hice una adaptación con tu archivo.
Desde ya te aviso que si querés implementar esto vas a tener que modificar mucho tu formulario, ya que cada inputbox y su respectiva etiqueta va a tener que estar dentro de un frame.
En la hoja ayuda que agregue tenés que agregar en la columna 1 el nombre del frame, y en la columna 2 la ayuda que se despliega en el tooltip, ahi te deje un ejemplo para que te aparezca con salto de linea.

[Tienes que estar registrado y conectado para ver este vínculo]

Saludos,
Pablo.


Última edición por P@li el Mar Jul 06, 2010 3:32 pm, editado 2 veces

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Mar Jul 06, 2010 3:28 pm

P@li escribió:
Aca hice una adaptación con tu archivo.
Desde ya te aviso que si querés implementar esto vas a tener que modificar mucho tu formulario, ya que cada inputbox y su respectiva etiqueta va a tener que estar dentro de un frame.
En la hoja ayuda que agregue tenés que agregar en la columna 1 el nombre del frame, y en la columna 2 la ayuda que se despliega en el tooltip, ahi te deje un ejemplo para que te aparezca con salto de linea.

[Tienes que estar registrado y conectado para ver este vínculo]

Saludos,
Pablo.

Estoy intentando bajarme el ejemplo y me sale el siguiente mensaje:

"Es posible que este elemento no exita o ya no esté disponible"

Gracias y Salu2.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por P@li el Mar Jul 06, 2010 3:32 pm

Había un error en el link, intentá nuevamente.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Mar Jul 06, 2010 3:43 pm

P@li escribió:Había un error en el link, intentá nuevamente.

Sigo con problemas. Ahora donde pone Bajar ejemplo, no reacciona a la pulsación del ratón. Salu2 y perdón por las molestias.

Bueno ahora ya he podido descargar el ejemplo. Me tengo que ir a trabajar. Mañana revisaré el ejemplo y veré cómo puedo adaptarlo a mis necesidades, si soy capaz. Muchísimas gracias por dedicar vuestro tiempo a ayudarme. Cuando pueda os comentaré y si soy capaz de adaptarlo, lo subiré para compartirlo. Solo una duda, como soy muy novato, no se qué es un frame y cómo se pone en el formulario. Salu2.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por P@li el Mar Jul 06, 2010 4:05 pm

Ok, un frame es un "marco", en el cuadro de herramientas el dibujo del control es un cuadro con tres letras arriba "XYZ". Tenés que seleccionarlo, y dibujarlo en el formulario, después podés agregar adentro del frame los controles que quieras.

Saludos,
Pablo.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Miér Jul 07, 2010 10:42 am

P@li escribió:Ok, un frame es un "marco", en el cuadro de herramientas el dibujo del control es un cuadro con tres letras arriba "XYZ". Tenés que seleccionarlo, y dibujarlo en el formulario, después podés agregar adentro del frame los controles que quieras.

Saludos,
Pablo.

Ok, me he estado informando en la ayuda y efectivamente era eso. Siento la pregunta tan tonta, pero a veces las hojas de los árboles no nos dejan ver el bosque. He estado viendo el ejemplo y me dí cuenta de que había que crear un frame por cada campo y luego introducir éstos campos dentro del frame. A lo mejor es otra tontería, pero , ¿Esto no se podría hacer directamente con los labels, sin necesidad de tener que poner un frame por cada label y luego introducir éstos dentro de los frames?. Repito, a lo mejor estoy diciendo otra burrada, pero mis conocimientos no dan para más. Salu2 y perdón por las molestias.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por P@li el Miér Jul 07, 2010 12:11 pm


No, mirá, si estuvieramos programando en VB6.0 resultaría exactamente lo mismo, se podría hacer directamente sobre los labels, pero como estamos en VBA, la cosa cambia radicalmente cuando trabajamos con APIs de Windows, porque Office no tuvo la mejor idea que crear su propio entorno de formularios, los MSFORMS 2.0, dentro del cuál, ningún control común tiene hWnd, propiedad de todas las ventanas de Windows, con el cuál se identifican con un número varible pero único por cada una de ellas.

Para pedirle a la API que cree estos tooltip es necesario que le pasemos algunos parámetros, uno de ellos es el hWnd de la ventana.
Este fue el primer problema con el que tuve que enfrentarme cuando me propuse adaptar mi código de VB6.0 a VBA.

En algún momento, después de romperme la cabeza, me di cuenta que los frames tienen hWnd, difícil de encontrar, pero lo tienen, y esa fue la solución al problema que se presentaba al querer crear estos tooltips.

No tuve tiempo de investigar sobre alguna alternativa a esta cuestión, así que por el momento tengo que decirte que no se podría hacer directamente sobre los labels, pero en programación todo se puede hacer, así que no te extrañe si en algún momento llegaras a encontrarte con que esa posibilidad existe.

Estoy para cualquier otra consulta.

Saludos,
Pablo.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por albersil el Miér Jul 07, 2010 6:31 pm

Estoy francamente impresionado con tu explicación. Ojala tuviera los suficientes conocimentos como para realizar estas aplicaciones por mí mismo. Intentaré leer libros sobre el tema y desgranar el código de los ejemplos que circulan por la red para ver si aprendo poco a poco. Me pondré manos a la obra con el ejemplo para intentar adaptarlo a mis necesidades. Ya os comentaré.Muchas gracias y Salu2.

albersil

Cantidad de envíos : 32
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por Antoni el Mar Ago 24, 2010 1:52 pm

Hola:

Vale mas tarde que nunca.

Simulación de la propiedad ControlTipText con un TextBox.

Código:
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

TextBox1.Top = CommandButton1.Top + CommandButton1.Height + 5
TextBox1.Left = CommandButton1.Left

TextBox1 = "Esto es una prueba de como funciona" & _
          "un textbox simulando la propiedad controltiptext de un commandbutton"

TextBox1.Visible = True
TextBox1.Height = (3 * Len(TextBox1) / TextBox1.Width + 1) * 15
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
TextBox1.Visible = False
End Sub

El textbox adapta su altura de forma automática en función de la longitud del texto y de la anchura del textbox.

Importante: El textbox debe definirse con la propiedad MultiLine = True.

Salu2. Antoni.
avatar
Antoni
Moderador
Moderador

Masculino Cantidad de envíos : 21
Edad : 66
Ciudad - Pais : Santiago de Compostela - Galicia
Version de Excel : XP-2007
Fecha de inscripción : 28/12/2009

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Miér Ago 25, 2010 12:46 am

Muy bueno Antoni., me permiti armar un archivito a modo de ejemplo


_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por Amc el Miér Feb 09, 2011 7:58 pm

Hola a todos, digo lo mismo que en el tema de formulario, soy nuevo en este foro y soy un amante del Excel sobre todo VBA para Excel, he estado leyendo sobre el tema de controltiptex multilinea, descargue el ejemplo de P@li, y estuve ojeando el código, pero nada recuerdo que en su momento estuve enfrascado en conseguirlo y creo que lo logre, demen un tiempo para regresar a esos codigo y se los paso, de antemano de digo que es un error pensar que los objetos o controles en VBA no tienen el famoso y buscado identificador de ventana “hWnd” si tiene la propiedad .setfocus, se le puede determinar el hWnd, de hecho creo que en el trabajo que tengo sobre eso esta con un ejemplo de Texbox, CommandButton y frame, cada uno con su controltiptex multilinea, mostrado con MouseMove, pero nada, les prometo que pronto se los paso.
Si les parece interesante pasen por la parte de formulario hay un ejemplo de Formulario con menú,
saludos

Amc

Masculino Cantidad de envíos : 8
Edad : 48
Ciudad - Pais : España
Version de Excel : XP-2003
Fecha de inscripción : 29/01/2011

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por GalileoGali el Miér Feb 09, 2011 11:23 pm

Amc
En nuestro foro, en gral, no se admite el calficativo de "Tema Cerrado", por que la postura tecnológica impide considerar que existe un techo, por eso "las puertas siempre estan abiertas para presentar nuevas soluciones, adaptaciones, idas y vueltas...."
Conclusión bienvenidas serán tus propuestas y aportes.....
Consejo: no te afanes en anuncios y ve al grano con menos preámbulos

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

controltiptex multilinea

Mensaje por Amc el Jue Feb 10, 2011 12:49 pm

Saludos a todos
aquí esta, controltiptex multilineas del que le hable, trate de explicar todo el código, creo podrán comprender todo , ademas tiene otras curiosidades.



Amc

Masculino Cantidad de envíos : 8
Edad : 48
Ciudad - Pais : España
Version de Excel : XP-2003
Fecha de inscripción : 29/01/2011

Volver arriba Ir abajo

Re: controltiptex multilinea

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.