Ofreciendo opciones en una macro (Microsoft Excel)
Si recién está comenzando a desarrollar macros, es posible que esté buscando una forma sencilla de ofrecer un conjunto de opciones a un usuario y luego tomar una acción basada en la respuesta del usuario. Esta es una tarea relativamente simple, si usa la función InputBox junto con una estructura Seleccionar caso.
La primera tarea es configurar su InputBox para que muestre la información al usuario. Por ejemplo, digamos que tiene cinco opciones y desea que el usuario seleccione una opción de esas cinco. Puede usar el siguiente código para juntar cinco opciones, cada una en su propia línea:
Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice"
Ahora puede usar la cadena Prompt cuando invoca la función InputBox en su macro. Luego, traduce lo que responde el usuario a un número que represente su elección entre sus cinco opciones. El código para hacer esto es el siguiente:
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)
En este ejemplo, la respuesta de la función InputBox se asigna a la variable UserResp, que debe dimensionarse como una cadena. La variable UR, que debe dimensionarse como un número entero, se establece en función del valor de la cadena. (La función Val devuelve el valor en una cadena.)
Lo único que queda por hacer es realizar una acción en función del número elegido, del 1 al 5. Puede usar la estructura Seleccionar caso para hacer esto.
La subrutina completa podría aparecer de la siguiente manera:
Sub Macro1() Dim Prompt As String Dim UserResp As String Dim UR As Integer Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice" UR = 0 While UR < 1 Or UR > 5 UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp) Wend Select Case UR Case 1 'Do stuff for choice 1 here Case 2 'Do stuff for choice 2 here Case 3 'Do stuff for choice 3 here Case 4 'Do stuff for choice 4 here Case 5 'Do stuff for choice 5 here End Select End Sub
Observe que este ejemplo usa un bucle While … Wend alrededor de la función InputBox. Esto se hace para asegurarse de que el usuario ingrese un número entre 1 y 5. Si el valor ingresado está fuera de ese rango, entonces simplemente se le pregunta nuevamente al usuario.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (3098) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Offer_Options_in_a_Macro [Opciones de oferta en una macro]
.