Excel. Filtrar con formulario modal

Teniendo un formulario en modal activado, la solicitud de filtrado en hoja de Excel no se realiza hasta que el formulario no pierde el foco, es decir: se cierra. ¿Cómo puedo hacer para que realice el filtrado sin perder el foco y sin cerrar el formulario? Y en pantalla se vea, tras él, la hoja con los elementos filtrados.

Respuesta
1

Para filtrar datos en Excel mientras se mantiene el formulario modal abierto, puedes utilizar un macro en VBA (Visual Basic para Aplicaciones) que realice el filtrado y actualice la hoja de trabajo sin necesidad de cerrar el formulario. Aquí hay un ejemplo de código que puedes utilizar:

  1. Haz clic en "Desarrollador" en la pestaña de "Herramientas de programador" en la cinta de opciones.

  2. Haz clic en "Editor de Microsoft Visual Basic" para abrir el editor de VBA.

  3. En el editor de VBA, haz clic en "Insertar" y luego en "Módulo" para agregar un nuevo módulo.

  4. Copia y pega el siguiente código en el módulo recién creado:

Sub filtrar_datos() ActiveSheet.Range("A1:D1000").AutoFilter Field:=1, Criteria1:="valor" ActiveSheet.Range("A1:D1000").SpecialCells(xlCellTypeVisible).Select End Sub

  1. Reemplaza "valor" en el código por el valor que deseas utilizar como criterio de filtrado.

  2. Cierra el editor de VBA y vuelve a la hoja de trabajo de Excel.

  3. Haz clic en el botón de formulario modal y haz clic en el botón que ejecutará el macro de filtrado.

Ahora, al hacer clic en el botón, se filtrarán los datos en la hoja de trabajo mientras se mantiene el formulario modal abierto.

1 respuesta más de otro experto

Respuesta
1

Visita:

Cursos de Excel y Macros

Por Dante Amor

----- --

Debes tener el showmodal = false

https://youtu.be/w94CJSf5xxk 

Y también debes tener la actualización de la pantalla en True:

Application.ScreenUpdating = False

----- --

https://youtu.be/4klJVh_Ob0M 

https://studio.youtube.com/video/4klJVh_Ob0M/edit 

Sal u dos Dante Amor

NOTA:

Y también debes tener la actualización de la pantalla en True:

Application.ScreenUpdating = True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas