Jump to content

Resaltar texto en código VBA


noise56

Recommended Posts

Hola amigos, buenos días.

Excel 2003 - SP3

Trasteando por el foro en busca de una cosita que me hacía falta, encontré este código del usuario Tuve, lo he modificado un poco y me viene como anillo…

Sub Ayuda()
MsgBox "Texto..." & vbCr & "... continuación ..." & vbCr & "... continuación ...", , "Ayuda"
End Sub[/CODE]

Bien, resulta que tengo que poner varias observaciones en el texto, pero por su importancia, me gustaría resaltar algunas de ellas. Por ejemplo, con texto en negrita, o texto con distinto color.

Pero no sé cómo se hace, si alguien pudiera ayudarme, por favor, se lo agradeceré.

Saludos.

Link to post
Share on other sites

Gracias por tu respuesta, Ioyama.

En efecto, he visto lo que explican en la web del link que me has puesto y es mucho arroz para tan poco pollo, es demasiado para mí.

Y con respecto a lo del cuadro de texto que simule el msgbox, no sé, no sé cómo podría hacer para que al hacer click en un botón, me aparezca un cuadro de texto que me muestre un texto que previamente yo haya especificado y configurado.

Si puedes y me haces el favor de explicarme cómo podría hacerse, te lo agradeceré. Estoy haciendo una aplicación que con ese deatlle me quedaría bastante profesional el asunto.

Saludos desde Cádiz.

Link to post
Share on other sites

Gracias Antoni, muy amable.

Ahí te mando tal como lo tengo ahora, y lo que quisiera es que, si se puede hacer, claro.

Al abrirse el msgbox, por ejemplo, la línea: "- El modelo Sueca se fabrica en grueso 20.", que se muestre en negrita o que se le pueda cambiar el color de la fuente.

Saludos.

Prueba1.xls

Link to post
Share on other sites
Guest jorgetchake

Estimado Noise56

Con el permiso de los Maestros Ioyama y Macro Antonio.

No tengo idea de cómo realmente quieres mostrar tus mensajes,…. Pero si tienes E-2003 me permito sugerirte que consideres la posibilidad de usar el Asistente.

Hace tiempo lo abandoné porque en E-2007 lo han eliminado,… aunque yo no uso E-2007 de todos modos el asistente ya no lo considero en mis aplicaciones.

Para mí es un método de interfase con el operador muy bueno,… tiene muchas facilidades de fuentes y colores,… revísalo y de paso te entretienes un poco viendo las animaciones que tienen.

El adjunto te muestra el Asistente cuando abres el libro. Te saluda. El código lo ves en ThisWorkbook Open.

Una vez que tienes estructurado el código (VB) te daría casi el mismo trabajo que un MsgBox, con muchas más facilidades como ser opciones y no me acuerdo que otras cosas más.

Revisa bien porque por algo no veo que los integrantes del foro lo usen.

El archivo que pensaba enviar,... zipeado me quedó en 266KB y no podré mandarlo,.... otro modo no conozco.

Lo lamento, mi intención era de aportarte alguito,... al menos espero que hayas comprendido la sugerencia.

Cordiales saludos.

Link to post
Share on other sites

Muchas gracias amigo Jorgetchake.

Muy interesante tu propuesta y muy curiosa, no sabía yo que con el asistente se podían hacer estas cosas.

Las tendré en cuenta. Mientras espero al maestro Antoni, voy a probar también con formularios a ver qué tal queda.

Saludos

Link to post
Share on other sites

Hola de nuevo:

Esto ha sido mas "heavy" de lo que parecía.

Te adjunto una macro con el nombre de Mensaje, siempre que quieras usarla debes copiar todo el módulo MacroMensaje.

El mensaje se muestra sobre la hoja y desaparece al hacer click sobre el.

Los parámetros de la macro te permiten ubicar el mensaje donde quieras, definir su tamaño, color de fondo y bordes.

Todos los parámetros son opcionales y solo afectan al continente, es decir al cuadro del mensaje.

En cuanto al texto no ha quedado mas remedio que incluir los parámetros en el propio texto, puedes:

Escoger la fuente, el tamaño, el color si es en negrita, cursiva y subrayada.

Los comandos son parecidos a los de formatear texto del foro, van entre corchetes y permanecen en vigor hasta encontrar un comando del mismo tipo que los modifique.

Problemas, solo uno, es rematadamente lenta para mensajes largos.

Voy a intentar mejorar el tiempo de respuesta, pero mientras puedes practicar a ver que tal.

Saludos

MacroMensaje.xls

Link to post
Share on other sites

Uuuuuffff… jolín, demasiado, Antoni.

Muchas gracias.

Ni por asomo me podía imaginar que esto fuera tan complejo. Lo siento, amigo, te he calentado la cabeza más de lo que creía.

Me da un error cuando hago click en el botón de “Mostrar mensaje”. Error 438, “El objeto no admite esta propiedad o método”.

Por otro lado, no entiendo bien el funcionamiento. A ver, yo escribo en el recuadro las observaciones y configuro el texto a mi gusto. El recuadro debería guardarse con el texto que yo haya puesto, y mostrarse cuando haga click en el botón. Es eso ??.

La parte que me subraya el error en el código es esta línea: Selection.ShapeRange.TextFrame2.TextRange.Characters.Text = Cadena

Saludos

Link to post
Share on other sites

Me temo que tenemos problemas de compatibilidad. En primer lugar vamos a pedir auxilio a la gente que tiene Excel 2003 para confirmar que el error es un problema de compatibilidad y a ver si alguno de los "dinosaurios" que se guarda todas las versiones de Excel no echa una mano.

En cuanto al funcionamiento es como el de un Msgbox, pero sin posibilidad de dialogo (o sea Aceptar y punto).

Si tu escribes

 Mensaje "Este es mi mensaje"[/CODE]

, en cualquier macro o formulario, te mostrará el texto tal cual en un cuadro de texto en la hoja. Pulsas encima y desaparecerá.

Si escribes:

[CODE] Mensaje "[B]Este es mi mensaje[/B"]"[/CODE]

, te lo mostrará en negrita

Si escribes:

[CODE] Mensaje "[B][S]Este es mi mensaje[/B][/S]"[/CODE]

, te lo mostrará en negrita y subrayado

y así con todos los comandos permitidos.

Abro un tema de "MayDay, MayDay.."

Pd: ¡Cuidado! los comandos del foro interfieren con el texto de esta explicación

Link to post
Share on other sites

Bien, entonces esperaremos a ver si alguien nos confirma que el problema es de compatibilidad.

No sé con qué versión trabajas, de todos me llevaré luego el archivo a casa y lo probaré en el portátili de mi hija que tiene el 2007.

Saludos

Link to post
Share on other sites

Subo la versión "turbo" con los problemas de rendimiento arreglados.

Yo uso la versión 2010, pero con la 2007 no debería haber ningún problema.

Saludos

PD: Voy a hacer una versión para subirla como aporte, y en los ejemplos estoy manteniendo el texto de tu msgbox como ejemplo dado que no parece que contenga información confidencial, de todas forma, si tienes algún inconveniente házmelo sabe y lo cambiaré.

MacroMensaje Turbo.xls

Link to post
Share on other sites

He probado la versión turbo y, tal como dice el maestro Ioyama, también me salta el error en la sentencia:

[B][COLOR=#FF0000]Selection.ShapeRange.TextFrame2.TextRange.Characters.Text = Cadena.[/COLOR][/B][/CODE]

Bueno, pues parece que lo tengo crudo. Aquí en la empresa todas las máquinas tienen el 2003 y de momento, a largo plazo, así seguirán. Estuve pensando cambiarla pero tengo muchas aplicaciones hechas con el 2003, tanto en Excel como en Acces.

Me entra hasta escalofrios nada más pensar que hay que cambiar la versión del Office de la que se puede liar.

Bueno pues a ver si se pudiera hacer una modificación que funcione en el 2003, y si no, pues nada, qué le vamos a hacer.

Antoni, no me importa en absoluto que uses el texto que te mandé, sin problemas.

Ioyama, gracias por probar el código.

Saludos

Link to post
Share on other sites

Perfecto.

He probado la versión de la turbo en un Office 2007, va sin ningún problema, y me he quedado de piedra.

Buen trabajo, amigo. Es genial, y creo que se le podría dar bastantes usos.

De verdad es una pasada, me encanta.

Saludos.

Link to post
Share on other sites

Lastima de la versión de Excel. Instálate la versión 2007.

No es necesario que que desinstales la versión 2003, hay mucha gente que lo tiene así.

En cualquier caso, me alegro que te guste.

En breve subiré un aporte con la versión turbo a la que le estoy añadiendo un formateador de texto para que no haya que escribir todos los comandos. A parte de mas rápido se evitarán errores, ya que ademas generará la propia instrucción Call de llamada a la macro.

Saludos

PD. Inventa cosas que me entretengo mucho,....jajaja

Link to post
Share on other sites

Hola Antoni.

Lastima de la versión de Excel. Instálate la versión 2007.

Hombre, sería una solución pero de momento voy a dejar las cosas como están.

Son varios ordenadores y la verdad es que no me seduce la idea de instalar el 2007 junto con el 2003, a la larga eso siempre trae problemas.

PD. Inventa cosas que me entretengo mucho,....jajaja

Je, jejejeje... no te preocupes, todavía no he terminado mi aplicación, así que amenazo con seguir por el foro. Aquí no me dejan tranquilo y tengo que estar a saltos, hoy un rato cuando puedo y mañana otro rato y así voy, a ver cuándo la termino, pero seguro que ya me surgirá algo para que te entretengas.

Mientras tanto, ya que estás liado con la nueva versión de la macro turbo, se me ocurre que podrías también incluir algo para que se le pueda insertar ficheros JPG, BMP... si se puede, claro. Sería una mejora interesante para los afortunados que puedan utilizarla.

Saludos

Link to post
Share on other sites

Bueno, con mucha paciencia he hecho un apaño con un formulario, simulando un msgbox, y para la edad que tengo creo que no me ha quedado mal, a mí me gusta :barbershop_quartet_.

Así que, por mi parte, no sin antes agradecer sinceramente al maestro Macro Antonio, la paciencia y dedicación que tan generosamente me ha brindado, doy por cerrado este asunto, si no se va alargar esto más que le película Ben-Hur, que dicho sea de paso, qué peliculón… !!!. Todos los años la veo y todos los años se me saltan las lágrimas en la misma escena, casi al final, aquellas mujeres en la cueva con los truenos los relámpagos, qué dramón !!.

Pues eso, que me enrollo.

Saludos.

Podemos cerrar este asunto.

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy