Se puede utilizar un control RefEdit en Excel VBA para obtener un rango de un usuario. El formulario de usuario que se va a crear colores el valor mínimo del rango almacenado en el control RefEdit.

Userform and Ranges in Excel VBA

Para crear este formulario de usuario, ejecute los siguientes pasos.

  1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no es visible, haga clic en Ver, Explorador de proyectos.

  2. Haga clic en Insertar, formulario de usuario. Si el cuadro de herramientas no aparece automáticamente, haga clic en Ver, Caja de herramientas. Su pantalla debe ser configurado de la siguiente manera.

Userform Screen Setup in Excel VBA

  1. Añadir la etiqueta botones de comando, control RefEdit y. Una vez que esto se ha completado, el resultado debe ser consistente con la imagen del formulario de usuario mostrado anteriormente. Por ejemplo, crear un control RefEdit haciendo clic en RefEdit de la caja de herramientas. A continuación, puede arrastrar un control RefEdit en el UserForm.

Nota: Si su caja de herramientas no tiene un control RefEdit, establecer una referencia al control RefEdit. Haga clic en Herramientas, Referencias, y comprobar Ref control de edición.

  1. Puede cambiar los nombres y los títulos de los controles. Los nombres se utilizan en el código VBA Excel. Los títulos son los que aparecen en la pantalla. Es una buena práctica para cambiar los nombres de los controles, pero no es necesario en este caso, porque sólo tenemos unos pocos controles en este ejemplo. Para cambiar el título de los botones de formulario de usuario, la etiqueta y de comando, haga clic en Ver, Ventana Propiedades y haga clic en cada control.

  2. Para mostrar el formulario de usuario, coloque un botón de comando en la hoja de trabajo y agregue la línea siguiente código:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ahora vamos a crear el Sub UserForm_Initialize. Cuando se utiliza el método Show para el formulario de usuario, automáticamente se ejecutará este sub.

  1. Abra el Editor de Visual Basic.

  2. En el Explorador de proyectos, haga clic en UserForm1 y haga clic en Ver código.

  3. Elegir formulario de usuario de la lista desplegable izquierda. Inicializar elegir de la lista desplegable de la derecha.

  4. Se añaden las siguientes líneas de código:

Private Sub UserForm_Initialize()

Sheet1.Cells.Font.Color = vbBlack

UserForm1.RefEdit1.Text = Selection.Address

End Sub

Explicación: la primera línea de código cambia el color de la fuente de todas las células en sheet1 a negro. La segunda línea de código obtiene la dirección de la selección actual y lo muestra en el control RefEdit.

Ahora hemos creado la primera parte del formulario de usuario. A pesar de que se ve bien ya, no pasará nada sin embargo, cuando hacemos clic en los botones de comando en el formulario de usuario.

  1. En el Explorador de proyectos, haga doble clic en UserForm1.

  2. Haga doble clic en el botón Ir.

  3. Añadir las siguientes líneas de código:

Private Sub CommandButton1_Click()

Dim addr As String, rng, cell As Range, minimum

As Double

addr = RefEdit1.Value

Set rng = Range(addr)

minimum = WorksheetFunction.Min(rng)

For Each cell In rng

If cell.Value = minimum Then cell.Font.Color = vbRed

Next cell

End Sub

Explicación: en primer lugar, se obtiene la dirección del control RefEdit y la almacenamos en la variable addr cadena. A continuación, nos propusimos RNG para el rango especificado en el control RefEdit. A continuación, utilice la función de hoja de Min para encontrar el valor mínimo de la gama. Por último, coloreamos el valor (s) mínimo mediante un bucle.

  1. Haga doble clic en el botón Cancelar.

  2. Agregue la siguiente línea de código:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Explicación: esta línea de código cierra el formulario de usuario al hacer clic en el botón Cancelar.

Prueba 15. el formulario de usuario.

Resultado:

Userform and Ranges Result