Archive

Posts Tagged ‘Filtro’

EXCELeINFO add-in: guardar datos filtrados como archivo nuevo

November 4, 2012 1 comment

Esta herramienta publicada en nuestro add-in, permite guardar cualquier resultados de un filtro en un archivo nuevo con extensión .xls, .xlsx o .csv.

Cómo funciona:

Después de realizar nuestro filtro, elegimos la herramienta y nos pedirá confirmación de guardar los datos filtrados como un nuevo archivo. Si aceptamos que continúe, nos mostrará el clásico formulario de Guardar como, donde elegiremos la ubicación de nuevo archivo.

Los datos filtrados se guardarán en otro archivo para así ser manipulados o enviados por correo electrónico.

Animación de la herramienta en ejecución

Guardar datos filtrados

:: Descargar EXCELeINFO add-in 2.3.9

Actualización: modificar tabla de Excel mediante ListBox con datos filtrados

September 30, 2012 17 comments

El 7-jul-12 había publicado un ejemplo que te permite pasar datos de una tabla de Excel a un objeto ListBox para después hacer modificaciones a los registros, así como poder eliminar los mismos.

En esta actualización añado un TextBox donde se podrá ingresar un texto para que los datos mostrados sean filtrados por ese texto.

Sugerencia: el ejemplo puede ser modificado para que tenga más prestaciones, lo cual podría convertirse es una aplicación en forma. Yo sólo dejo el ejemplo básico con el afán de que alguien lo pueda modificar a sus necesidades.

Formulario

image

Código del botón filtrar

Private Sub CommandButton5_Click()
On Error GoTo Errores
If Me.txtFiltro1.Value = "" Then Exit Sub
    Me.ListBox1.Clear
    j = 1
    For i = 1 To 18
        If Cells(i, j).Offset(0, 2).Value = CInt(Me.txtFiltro1.Value) Then
        Me.ListBox1.AddItem Cells(i, j)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, j).Offset(0, 1)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, j).Offset(0, 2)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, j).Offset(0, 3)
Else
End If
Next i
Exit Sub
Errores:
MsgBox "No se encuentra.", vbExclamation, "EXCELeINFO"
End Sub

:: Descargar el ejemplo

EXCELeINFO add-in 2.3.1 – replanteando el filtro rápido

March 4, 2012 11 comments

Les dejo una modificación que realicé al apartado de Datos > Filtro rápido… la cual comprende:

  • Identifica si lo ingresado es texto o númerico (en el caso de los números, filtra sólos los completos).
  • Detecta el rango en uso y permite que podamos elegir a qué columna queremos aplicarle el filtro.

Imagen

image

'--------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : Sergio A Campos H
' Date      : 03/04/2011
' Modifies    : 03/03/2012
' Purpose   : Filtro rápido
'---------------------------------------------------------------------------------------

Sub EXCELeINFOFiltro()
    On Error Resume Next
    If frmFiltroRapido.txtCriterio.Value <> "" Then
        If frmFiltroRapido.chkInicio.Value = True Then
            Criterio = frmFiltroRapido.txtCriterio.Value & "*"
        Else
            If IsNumeric(frmFiltroRapido.txtCriterio.Value) Then
                Criterio = frmFiltroRapido.txtCriterio.Value
            Else
                Criterio = "*" & frmFiltroRapido.txtCriterio.Value & "*"
            End If
        End If
        ColFiltrar = frmFiltroRapido.ComboBox1.ListIndex + 1
        ActiveCell.CurrentRegion.AutoFilter Field:=ColFiltrar, Criteria1:=Criterio, Operator:=xlAnd
    Else
        Criterio = ""
        Selection.AutoFilter
    End If
End Sub

:: Descarga el ejemplo

:: Descargar EXCELeINFO add-in 2.3.1

Formulario de Filtro rápido, con macros en Excel

April 3, 2011 45 comments

Twittear este post Compartir en Facebook

Nota del 09-abr-11: Se modifica el formulario del filtro, para que se permita elegir la columna que se desea filtrar (por solicitud de un usuario de los foros de www.todoexcel.com).

image

Los autofiltro en Excel son muy útiles y necesarios, así como los filtros avanzados, cuando queremos más de una condición para nuestro filtrado.

Pero muchas en muchas ocasiones lo que deseamos es un filtro rápido y sin complicaciones.

Para este propósito, desarrollé el siguiente formulario que, con sólo escribir los datos que necesitamos, “al cambio” realiza el filtrado.

Formulario en acción:

image

Código de la macro:

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : Sergio A Campos H
' Date      : 03/04/2011
' Purpose   : Filtro rápido
'---------------------------------------------------------------------------------------

Sub EXCELeINFOFiltro()
    On Error Resume Next
    If frmFiltroRapido.txtCriterio.Value <> "" Then
        If frmFiltroRapido.chkInicio.Value = True Then
            Criterio = frmFiltroRapido.txtCriterio.Value & "*"
        Else
            Criterio = "*" & frmFiltroRapido.txtCriterio.Value & "*"
        End If
        ColFiltrar = ActiveCell.Column - ActiveCell.CurrentRegion.Column + 1
        ActiveCell.CurrentRegion.AutoFilter Field:=ColFiltrar, Criteria1:=Criterio, Operator:=xlAnd
    Else
        Criterio = ""
        Selection.AutoFilter
    End If
End Sub
'
Sub AbrirFiltro()
    If TypeName(Selection) <> "Range" Then
        MsgBox "No hay celdas elegidas.", vbExclamation, "EXCELeINFO"
    Else
        If ActiveCell.CurrentRegion.Rows.Count < 2 Then
            MsgBox "No hay suficientes datos para realizar un filtrado.", vbExclamation, "EXCELeINFO"
        Else
            frmFiltroRapido.Show
        End If
    End If
End Sub

:: Descargar ejemplo