Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA

Si quieres que los usuarios de Excel especifiquen un rango que la aplicación utilizará de manera automática, estás de suerte. Afortunadamente, la función InputBox de Visual Basic for Applications (VBA) permite realizar esta tarea sin demasiado esfuerzo. En este artículo aprenderás cómo seleccionar un rango utilizando InputBox.

Índice de Contenido
  1. ¿Qué es InputBox?
  2. Cómo utilizar InputBox en VBA
    1. Así funciona InputBox en una hoja de cálculo

¿Qué es InputBox?

La función InputBox de VBA es una de las más útiles que utilizarás. Muestra un cuadro de diálogo y espera a que el usuario introduzca contenido y haga clic en un botón para continuar. Esta función suele almacenar un valor de tipo String que contiene el valor introducido, y luego puedes manipularlo de alguna manera utilizando más código.

Esta función tiene solo un argumento requerido, el "prompt" (indicación):

InputBox(prompt, [ título ], [ valor_predeterminado ], [ xpos ], [ ypos ], [ archivo_ayuda, contexto ], [tipo])

El "prompt" es una expresión de tipo String que se muestra en el cuadro de diálogo. Utilízalo para indicarle al usuario qué hacer; generalmente, esta cadena le indicará al usuario que introduzca algún tipo de contenido. La Tabla A ofrece una breve explicación de cada argumento, pero solo utilizaremos los siguientes tres: prompt, título y tipo. La Tabla B muestra los posibles valores de tipo; utilizaremos 8 porque este valor devuelve un objeto Range.

Cómo utilizar InputBox en VBA

Ahora que conoces InputBox, vamos a utilizarlo en un procedimiento sencillo. En particular, el procedimiento en Listado A te pedirá que selecciones un rango. Después de realizar algunas pruebas de valores, el procedimiento mostrará el rango seleccionado en un cuadro de mensaje. Si no seleccionas un rango válido, la función mostrará un mensaje de error incorporado.

Enseñanza y Aprendizaje con Microsoft: Herramientas y Lecciones para Profesores de todos los Niveles

Listado A


Sub SelRange()
    ' Utilizar InputBox para pedir al usuario que seleccione un rango.
    ' Realizar pruebas para cancelaciones y selecciones de celda única.
    Dim rng As Range
    On Error Resume Next
    Set rng = Application.InputBox( _
        Title:="Selecciona un rango", _
        Prompt:="Selecciona un rango", _
        Type:=8)
    On Error GoTo 0
    
    ' Realizar pruebas para cancelaciones.
    If rng Is Nothing Then Exit Sub
    
    ' Realizar pruebas para selección de celda única.
    ' Elimina el carácter de comentario si la selección de celda única es correcta.
    If rng.Rows.Count = 1 Then
        MsgBox "Solo has seleccionado una celda." _
            & " Por favor, selecciona múltiples celdas adyacentes.", vbOKOnly
        Exit Sub
    End If
    
    ' Elimina el comentario para seleccionar el rango de entrada.
    ' rng.Select
    
    MsgBox rng.Address
End Sub

Si estás utilizando una versión de Excel con la cinta de opciones, asegúrate de guardar el libro como un archivo habilitado para macros (.xlsm) o el procedimiento no se ejecutará. Si estás utilizando una versión con menús, puedes omitir este paso.

Para ingresar el procedimiento, presiona Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, selecciona ThisWorkbook para poder ejecutar el procedimiento en cualquier hoja. Puedes ingresar el código manualmente o importar el archivo .cls descargable. Además, el macro se encuentra en los archivos .xlsm y .xls descargables. Si ingresas el código manualmente, no pegues directamente desde esta página web. En su lugar, copia el código en un editor de texto y luego pégalo en el módulo ThisWorkbook. De esta manera, se eliminarán cualquier carácter web fantasma que pueda ocasionar errores.

Ahora es el momento de utilizar el procedimiento para pedirte que selecciones un rango. Para nuestros propósitos, el rango seleccionado no importa. Para mostrar el InputBox, realiza lo siguiente:

  1. Haz clic en la pestaña "Desarrollador".
  2. Haz clic en "Macros" en el grupo "Código".
  3. En el cuadro de diálogo resultante, elige "SelRange()" como se muestra en Figura A y haz clic en "Ejecutar".
  4. Cuando se te solicite, selecciona cualquier rango (ver Figura B) y luego haz clic en "Aceptar".

Figura A

Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA - Software | Imagen 1 Newsmatic

Guía de Examen de Certificación Lotus Notes: Desarrollo de Aplicaciones y Administración del Sistema

Figura B

Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA - Software | Imagen 2 Newsmatic

Como se puede ver en Figura C, el procedimiento muestra el rango seleccionado como texto. Haz clic en "Aceptar" para cerrar el cuadro de mensaje. Observa que la referencia es absoluta. Si necesitas que sea relativa, agrega código que elimine los caracteres $ apropiados (o todos). Puedes ingresar el rango desde el teclado con o sin los caracteres $; sin embargo, InputBox convertirá la referencia en absoluta.

Figura C

Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA - Software | Imagen 3 Newsmatic

Así funciona InputBox en una hoja de cálculo

Después de definir la variable rng como un objeto Range, la instrucción Set ejecuta InputBox. Debido a que el argumento de tipo es 8, InputBox espera una selección. Si ingresas cualquier otra cosa, el procedimiento mostrará el mensaje de error que se muestra en Figura D. Esto significa que no necesitas ningún manejo de errores especial, la instrucción se encarga de eso automáticamente por ti.

Cómo gestionar eficazmente grandes volúmenes de correo electrónico

Figura D

Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA - Software | Imagen 4 Newsmatic

Este mensaje probablemente sea lo suficientemente específico como para no querer reemplazarlo. Sin embargo, puedes capturar el error y agregar un manejo de errores específico para ese error.

La variable rng almacena el rango seleccionado como un objeto Range; al aplicar esto a tu propio trabajo, debes tratar la variable como un objeto Range. Sin embargo, gracias a sus muchas propiedades y eventos, es poco probable que tengas que buscar más allá de ellos.

Este procedimiento no ofrece ningún manejo de errores aparte del error incorporado que se muestra si ingresas cualquier cosa que no sea un rango (Figura D). Es recomendable que agregues un manejo de errores sensible al contexto cuando utilices InputBox en tus propios libros de trabajo.

Es poco probable que quieras seguir todos esos pasos cada vez que quieras ejecutar el procedimiento. En su lugar, añade el macro a la barra de acceso rápido (Quick Access Toolbar, QAT). Para hacerlo, consulta Cómo agregar macros de Office a la barra de acceso rápido para un acceso rápido.

Integración de StarOffice: calendarios

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo seleccionar un rango en Excel utilizando la función InputBox de VBA , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.