Excel 2016 VBA esencial

Cuadros de mensaje con y sin variable en VBA

¡Prueba gratis durante 10 días

nuestros 1220 cursos !

Prueba gratis Mostrar modalidades de suscripción
La instrucción MsgBox permitirá al usuario aceptar, negar o cancelar una pregunta o acción que está desarrollando el código, todo ello mediante un cuadro de diálogo. Comenzamos a interactuar con el usuario de una forma más directa.

Transcripción

Una de las funciones más utilizadas en Excel se trata de "msgbox", es decir, message box. O lo que es lo mismo cuadro de mensaje. Vamos a practicar esta función de momento en su modo más sencillo y básico. Tenemos un ejemplo de eso en la primera de las macros que tenemos en pantalla. Vemos como después del nombre de la función simplemente entre comillas se pone el texto que queramos. El resultado será que vamos a obtener en pantalla un cuadro de mensaje avisando al usuario de alguna circunstancia. Por ejemplo, si volvemos a Excel y ejecutamos la macro, aquí tendríamos el resultado. Vemos como es bastante sencillo y por ello también es bastante utilizado. Vamos a volver a Visual Basic y vamos a estudiar también la segunda de las macros. En este caso ya es algo más complejo porque se utiliza esta función pero de forma que el usuario puede interactuar. Es decir, el usuario va a ver también un mensaje pero va a ver varios botones para contestar si o no o incluso otras opciones que se pueden elegir como reintentar, ignorar, cancelar, aceptar, etc. Cuando necesitamos un cuadro de mensaje de este tipo, es decir, de los que ofrecen al usuario varias opciones, obligatoriamente tenemos que utilizar primero una variable. Es decir, en primer lugar, se dimensiona o declara una variable, en este caso es "respuesta como un número entero" y después en la siguiente línea a continuación se iguala la variable a la función. Para que el resultado de estas función messagebox se introduzca dentro de esta variable. En otras palabras, si el usuario contesta "si", ese "si" se va a colocar dentro de la variable "respuesta". A continuación ponemos una estructura condicional "ifthenelse", con la cual podemos evaluar que si en la variable "respuesta" hay una respuesta igual a "si", aquí podemos ver vbYes que es una especie de constante que equivale a "si" entonces que ocurra todo lo que va a desencadenar este código. Y si no, es decir "else", que obtengamos un cuadro de mensaje como este. Y después que salgamos de la subrutina, es decir, se aborta toda la macro. Bien pues, vamos a poner en practica todo esto desde Excel. Eliminamos este valor, y desde "Desarrollador" vamos a macros y ahora vamos a ejecutar esa macro. Vemos como en pantalla sale un cuadro de mensaje que efectivamente nos ofrece dos posibilidades. ¿Desea asignar un valor a la celda A1? ¿Si o no? Vamos a decir que sí en esta ocasión, y vemos como A1 ya tiene su valor. Ahora ya sólo nos informa, no nos da más opciones. Es porque había un código utilizando msgbox de forma que no daba mas opciones sino que era la forma simple de la función Y aceptamos, vamos a recordar el código. Lo que ha ocurrido es que la respuesta ha sido "si" y entonces se ha introducido el valor y se nos ha mostrado este mensaje. Y después salimos de la rutina. Vamos a ver qué ocurre si decimos que no pues tiene que ocurrir lo que proporciona este código. Ejecutamos y ahora decimos que no y simplemente tenemos el mensaje diciendo que no se ha asignado ningún valor a la celda A1. Este es el que ya tenía, así que nuestro código funciona bien. Y por último sería interesante ver cómo se escribe, o lo que es lo mismo, ver el proceso de escritura de toda esta línea de código que al fin y al cabo es de las protagonistas de la macro. Vamos a eliminarla y a comenzar a escribir Respuesta es igual a msgbox y ahora abrimos paréntesis. Esto era lo interesante que queríamos mostrar. Nada más escribir el paréntesis de apertura vemos una ayuda contextual diciéndonos cuáles son los argumentos posibles para esta función. Vamos a comentar los más importantes. El primero de ellos "prompt" no es otro que el texto principal que va a mostrar el cuadro de mensaje. Si recordamos concretamente era "¿desea asignar un valor a la celda A1?" Por supuesto todo entre comillas. Ahora, una coma y vemos como el siguiente argumento ahora está en negrita. Y lo que nos está diciendo es si queremos que los botones sean de un tipo u otro. Y aquí tenemos una ayuda contextual para elegir que tipo de botones queremos. Los que antes hemos utilizado eran unos del tipo "vbYesno", que lo tenemos aquí. Pero aquí al lado podemos ver que también está "yesnocancel" y otras opciones. Vamos a utilizar "vbYesno" como en el ejemplo. Ahora volvemos a poner una coma y por último de los argumentos importantes que vamos a comentar es "title" que hace referencia al título que aparece en la barra de la parte superior del cuadro de mensaje. Después vamos a poder comprobarlo. En este caso queremos que sea un pequeño texto que diga simplemente, atención. Bien y con esto vamos a cerrar paréntesis, los demás argumentos los vamos a obviar, salimos de la línea y ahora ejecutamos la macro. Y aquí tenemos. Este era el texto, y en la parte superior en la barra de títulos vemos como también está el texto que hemos asignado como título "atención".

Excel 2016 VBA esencial

Aprende desde cero el lenguaje VBA con el que podrás automatizar, acelerar muchas tareas cotidianas en Excel y escribir rutinas de código aplicables a tu trabajo cotidiano.

2:26 horas (42 Videos)
Actualmente no hay comentarios.
 

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.