variable valor una ultima sirve seleccionar rango que para macro hoja hasta desde datos con celda asignar activesheet activa vba excel-vba

valor - seleccionar hoja excel vba



Proporcionar una herramienta/utilidad de selección de rango para el usuario en Excel VBA (2)

Este control se llama control RefEdit .

Para usarlo, primero debe agregarlo a la ventana de la caja de herramientas haciendo clic con el botón derecho en la ventana de la caja de herramientas y seleccionando Controles adicionales ... Luego selecciona RefEdit.Ctrl y cierra el cuadro de diálogo.

Ahora puede seleccionarlo en la caja de herramientas y colocarlo en su formulario.

Estoy intentando desarrollar un formulario de usuario en Excel 2007 VBA y quiero proporcionarle a un usuario un icono de selección de rango, algo como esto:

Sin embargo, no he podido encontrar ninguna herramienta de diseño de formularios incorporada ni ninguna herramienta en línea que proporcione esto o al menos me dé una idea. Si alguien tiene alguna idea al respecto, agradeceré mucho su ayuda.


Otra alternativa para usar RefEdit.Ctrl es conectar algunas características no documentadas del control TextBox y usar la función Application.InputBox .

Hay dos propiedades del control TextBox que no aparecen en el cuadro de diálogo Propiedades, que le permiten agregar un botón a la derecha. Son DropButtonStyle y ShowDropButtonWhen . Cuando se hace clic en el botón, se activa el evento DropButtonClick para el control donde se puede mostrar el cuadro de entrada.

Comience colocando un control TextBox en el formulario. A continuación, agregue lo siguiente al procedimiento UserForm_Initialize :

Private Sub UserForm_Initialize() txtRefersTo.DropButtonStyle = frmDropButtonStyleReduce txtRefersTo.ShowDropButtonWhen = frmShowDropButtonWhenAlways End Sub

A continuación, agregue un controlador de eventos al evento DropButtonClick de la siguiente manera para capturar el rango utilizando el cuadro de diálogo Application.InputBox :

Private Sub txtRefersTo_DropButtonClick() Me.Hide txtRefersTo.Text = Application.InputBox("Select the range", "Range Picker", txtRefersTo.Text, Type:=8) Me.Show vbModal End Sub

La principal ventaja de este enfoque es que le permite colocar un control dentro de un marco o en una pestaña separada sin experimentar los problemas asociados con el RefEdit.Ctrl . La desventaja es que requiere un diálogo separado para interactuar con Excel.