Curso Excel VBA y Macros – Cap. 21 – Función y Método InputBox para capturar valores

<<CURSO COMPLETO EN YOUTUBE>>

Ya vimos cómo mostrar mensajes informativos con VBA, además de poder interactuar con ellos tomando decisiones en base a los botones que se presionen del mensaje.

Ahora toca aprender una Función, pero que a la vez también es un Método. Hablo de InputBox, que nos servirá para pedirle a los usuarios que ingresen o capturen un valor, para posteriormente ese valor guardarlo en una variable y usarlo durante la macro.

  • La función InputBox mostrará un cuadro de diálogo para pedirle al usuario que ingrese un valor.
  • El método InputBox mostrará un cuadro de diálogo para que el usuario ingrese distintos tipos de valores, como números, texto o incluso rangos de celdas.

Ver video Capítulo 21 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Función InputBox

Cuando deseamos que el usuario ingrese valores, usamos InputBox. Si queremos que el usuario capture varios valores, es mejor usar Formularios, pero InputBox es una excelente alternativa para poder interactuar con el usuario final de una aplicación y pedirle que capture datos.

Sintaxis función InputBox

Les muestro la sintaxis para la función InputBox

InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])

Donde:

Argumento

Descripción

prompt

Es la cadena de texto que se mostrará en el cuadro de diálogo. El máximo de caracteres es 1024 y también se puede usar el carácter Chr(13), salto de carro, o Crh(10) salto de línea.

title

El título de la ventana.

default

El valor predeterminado que se mostrará en el cuadro de diálogo, en la sección para capturar un valor.

xpos

Es la distancia desde el borde izquierdo de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en twips.

ypos

Es la distancia desde el borde superior de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en twips.

helpfile

El archivo de ayuda que se mostrará para proporcionar información extra.

context

Dentro del archivo de ayuda, es la sección a donde se apuntará.

Ejemplo de la función InputBox

En este ejemplo mostraremos un cuadro de diálogo donde pediremos un nombre. Ese nombre o ese valor se lo asignaremos a todas las hojas del archivo y al final de cada valor se añadirá un número correlativo, es decir, Hoja1, Hoja2, hasta la última.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Public Const Titulo = "EXCELeINFO"

Sub NombreCorrelativo()

Dim Texto As String
Dim Correlativo As Integer
Dim Hoja As Worksheet

Correlativo = 1

Texto = InputBox("Nombre de la hoja", Titulo, "Hoja")

For Each Hoja In Application.Worksheets

    Hoja.Name = Texto & " " & Correlativo
    Correlativo = Correlativo + 1

Next Hoja

End Sub

Método InputBox

El método InputBox es mucho más versátil que la función, y hasta me atrevería a decir que nos ahorra líneas de código al valor el ingreso de valores en este cuadro de diálogo. Ya que le podemos definir que acepte solo texto, número, rangos, valores booleanos, entre otros.

Sintaxis método Inputbox

Les muestro la sintaxis para el método InputBox

Application.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

Donde:

Argumento

Descripción

Prompt

Es la cadena de texto que se mostrará en el cuadro de diálogo. El máximo de caracteres es 1024 y también se puede usar el carácter Chr(13), salto de carro, o Crh(10) salto de línea.

Title

El título de la ventana.

Default

El valor predeterminado que se mostrará en el cuadro de diálogo, en la sección para capturar un valor.

Left

Es la distancia desde la esquina superior izquierda de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en puntos.

Top

Es la distancia desde el borde superior de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en puntos.

HelpFile

El archivo de ayuda que se mostrará para proporcionar información extra.

HelpContextID

Dentro del archivo de ayuda, es la sección a donde se apuntará.

Type

Es el tipo de datos que se devolverá, si se omite el argumento, por default será texto.

Ejemplos del método InputBox

En esta macro mostraremos el cuadro de diálogo y podremos elegir un rango de celdas para posteriormente darle formato de millares con contenido.

Sub FormatearRango()

Dim MiRango As Range

Set MiRango = Application.InputBox("Rango", Titulo, Type:=8)

MiRango.Style = "Comma"

End Sub

En esta macro haremos un cálculo del porcentaje de un número, por lo que requerimos que en cuadro de diálogo se acepten solo valores numéricos. Usaremos InputBox en dos ocasiones para pedir ambos números y realizar el cálculo.

Sub ObtenerPorcentaje()

Dim Num1 As Integer
Dim Num2 As Integer
Dim Resultado As Double

Num1 = Application.InputBox("Ingresa el porcentaje en número", Titulo, Type:=1)
Num2 = Application.InputBox("Ingresa el número", Titulo, Type:=1)

Resultado = Num1 * (Num2 / 100)

MsgBox Resultado, vbInformation, Titulo

End Sub

Descarga el archivo de ejemplo

020 – Función MsgBox – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...