Macro para filtrar por año, luego mes y por ultimo por remitente

------------

Buena noche

Necesito de la ayuda de ustedes

Tengo una base de datos que aumenta constantemente

Y necesito filtrar por tres criterios por medio de un formulario

Año - que esta en la columna M

Mes - que está en la columna L

Remitente / destinatario - que está en la columna D

Primero necesito que se filtre el año en un textbox, luego que de lo que se filtro (año) se filtre el mes en otro textbox, y luego del resultado de esto se filtre el remitente / destinatario en un combobox, pero en el combobox solo aparezcan datos únicos y que solo aparezcan los items que estan dentro del mes seleccionado (ejemplo: si en marzo de 2020, solo hay 5 datos unicos de la columna D (REMITENTE / DESTINATARIO), que solo aparezcan esos.

En la columna D (REMITENTE / DESTINATARIO) hay muchos items, pero solo necesito que aparezcan los datos únicos del mes a buscar.

Adjunto el archivo

https://docs.google.com/spreadsheets/d/1EV-3Lh16X5kHpiJC9CVaCdRxjwGp-moK/edit?usp=share_link&ouid=110685551786251976099&rtpof=true&sd=true 

1 respuesta

Respuesta
1

Si estás interesado en aprender a programar en vba, revisa los siguientes vídeos:

LOS BÁSICOS:

Declarar variables en vba excel. Curso de macros. - YouTube

Consejos para desarrollar macros . curso de excel, curso de macros, excel, macros - YouTube


Para realizar filtros rápidos de información y cargar en un listbox, debes utilizar matrices, te recomiendo la serie completa de matrices:

https://youtube.com/playlist?list=PLmz9wGL_ItXN2J8xrd2ZQIEww60nHj_Z_ 


Entonces ya estás listo para ver el siguiente ejemplo:

Macro Cargar Listbox con Matriz. Curso de excel, curso de macros, excel, macros - YouTube


Y también te pongo una respuesta muy similar a lo que estás pidiendo:

Se puede crear un formulario de búsqueda filtrada


Recomendación del día:

Excel vba dictionary parte 1 - YouTube


Sal u dos Dante Amor

la verdad pase el fin de semana viendo videos y algunos son similares a lo que busco, le hago los cambios para adaptarlo a mi tabla pero no me funcionan,  el archivo lo uso en mi trabajo y a veces me piden información como la que quiero implementar en esta ocasión, seguiré buscando, gracias 

Te paso el código, puedes filtrar por año, por mes, por remitente o por remitente, año, mes o por mes o por remitente o por cualquier combinación que quieras:

Option Explicit
Private Sub ComboBox1_Change()
  Call filtrar_datos
End Sub
Private Sub TextBox1_Change()
  Call filtrar_datos
End Sub
Private Sub TextBox2_Change()
  Call filtrar_datos
End Sub
Sub filtrar_datos()
  With Range("A1:K" & Range("E" & Rows.Count).End(3).Row)
    .AutoFilter 11, "*" & TextBox1.Value & "*"
    .AutoFilter 10, "*" & TextBox2.Value & "*"
    .AutoFilter 5, "*" & ComboBox1.Value & "*"
  End With
End Sub
Private Sub UserForm_Activate()
  Dim dic As Object
  Dim c As Range
  Set dic = CreateObject("Scripting.Dictionary")
  If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
  For Each c In Range("E2", Range("E" & Rows.Count).End(3))
    If c.Value <> "" Then dic(c.Value) = Empty
  Next
  ComboBox1.List = dic.keys
End Sub


En el código que te estoy poniendo utilizo un dictionary para cargar los datos en el combobox, te recomiendo los vídeos parte 1 y parte 2, ahí explico el uso del dictionary

Excel vba dictionary parte 1 - YouTube

Excel vba dictionary parte 2 - YouTube

Sal u dos Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas