¿Cómo programo un botón para que filtre datos de una hoja?

Para Dante Amor

Quisiera programar un botón de un UserForm de manera que al tocarlo filtre los datos contenidos en una hoja dejando sólo aquellos que contienen un dato en una columna en particular; y luego de eso se deberán copiar a una nueva hoja algunas columnas de interés.

1 respuesta

Respuesta
1

H o l a:

Puedes enviarme tu archivo con algunos ejemplos y me dices por cuál columna quieres filtrar, cuáles columnas hay que copiar, de cuál hoja hay que copiar, en cuál hoja hay que pegar y en dónde se va a pegar en la primera fila de la hoja, o en la primer fila disponible de la hoja y de cuál columna.

Envíame el correo con los comentarios a mis dudas.

Gracias Dante! Ya envié lo que me indicas.

Saludos!

Carito.

H o l a:

Te anexo la macro

Private Sub FiltrarDatos_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("VT")
    Set h4 = Sheets("Filtro")
    h4.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    If h2.AutoFilterMode Then h2.AutoFilterMode = False
    If h3.AutoFilterMode Then h3.AutoFilterMode = False
    u1 = h1.Range("B" & Rows.Count).End(xlUp).Row
    u2 = h1.Range("G" & Rows.Count).End(xlUp).Row
    h1.Range("A1:S" & u1).AutoFilter Field:=19, Criteria1:="<>"
    h2.Range("A1:J" & u2).AutoFilter Field:=10, Criteria1:="<>"
    h1.Range("B:B, G:G").Copy h4.[A1]
    h2.Range("G:G").Copy h4.[C1]
    h3.Range("A:A").Copy h4.[D1]
    MsgBox "Datos filtrados y copiados", vbInformation
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

¡Gracias! Me ha sido muy útil!

Saludos!

Carito.

Hay un pequeño detalle en la macro, te anexo la macro actualizada:

Private Sub FiltrarDatos_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("VT")
    Set h4 = Sheets("Filtro")
    h4.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    If h2.AutoFilterMode Then h2.AutoFilterMode = False
    If h3.AutoFilterMode Then h3.AutoFilterMode = False
    u1 = h1.Range("B" & Rows.Count).End(xlUp).Row
    u2 = h2.Range("G" & Rows.Count).End(xlUp).Row
    h1.Range("A1:S" & u1).AutoFilter Field:=19, Criteria1:="<>"
    h2.Range("A1:J" & u2).AutoFilter Field:=10, Criteria1:="<>"
    h1.Range("B:B, G:G").Copy h4.[A1]
    h2.Range("G:G").Copy h4.[C1]
    h3.Range("A:A").Copy h4.[D1]
    MsgBox "Datos filtrados y copiados", vbInformation
End Sub

sal u dos

Hola Dante, no funciona el botón filtrar, se produce un error. Si te parece te envío el archivo para que lo revises. Gracias.

¿Y qué error te envía?

¿En qué línea de la macro se detiene?

¿Qué versión de excel tienes?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas