h o l a:
Te anexo el código
Private Sub ComboBox1_Change()
'Por.Dante Amor
'filtro con el cambio del combo
ListBox1.Clear
If ComboBox1.Value = "" Or ComboBox1.ListIndex = -1 Then
MsgBox "Selecciona un mes correcto"
ComboBox1.SetFocus
Exit Sub
End If
Set h1 = Sheets("Entrada")
col = 0
For i = 4 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
If UCase(h1.Cells(1, i)) = UCase(ComboBox1.Value) Then
col = i
Exit For
End If
Next
If col = 0 Then
MsgBox "El nombre del mes no existe en la hoja"
ComboBox1.SetFocus
Exit Sub
End If
'
Set h1 = Sheets("Entrada")
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
ListBox1.AddItem h1.Cells(i, "A")
ListBox1.List(ListBox1.ListCount - 1, 1) = h1.Cells(i, "B")
ListBox1.List(ListBox1.ListCount - 1, 2) = h1.Cells(i, "C")
ListBox1.List(ListBox1.ListCount - 1, 3) = h1.Cells(i, col)
Next
End Sub
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
'exportar a un archivo
Application.ScreenUpdating = False
If ComboBox1.Value = "" Or ComboBox1.ListIndex = -1 Then
MsgBox "Selecciona un mes correcto"
ComboBox1.SetFocus
Exit Sub
End If
Set h1 = Sheets("Entrada")
Set h2 = Sheets("Filtrado")
h2.Cells.Clear
col = 0
For i = 4 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
If UCase(h1.Cells(1, i)) = UCase(ComboBox1.Value) Then
col = i
Exit For
End If
Next
If col = 0 Then
MsgBox "El nombre del mes no existe en la hoja"
ComboBox1.SetFocus
Exit Sub
End If
If ListBox1.ListCount = 0 Then
MsgBox "No hay registros a exportar"
Exit Sub
End If
'
h1.Range("A:C").Copy h2.Range("A1")
h1.Columns(col).Copy h2.Range("D1")
h2.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ComboBox1.Value & " exportado.xlsx"
ActiveWorkbook.Close
Application.ScreenUpdating = True
MsgBox "Archivo exportado"
End Sub
'
Private Sub CommandButton3_Click()
Unload Me
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
For i = 1 To 12
ComboBox1.AddItem UCase(Format(DateSerial(Year(Date), i, 1), "mmmm"))
Next
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Interesante - Adriel Ortiz Mangia