Modificar macro para filtrar mediante optionbotton

Para elsa matilde

Buen día

Podría ayudar a modificar macro para filtrar en el mismo archivo que le he enviado.

Utilizando los optionbotton. Ya he agregado varios códigos pero no me funciona todavía.

Ya le envíe el archivo.

1 respuesta

Respuesta
2

Veo que tu hoja Clientes tiene en la col B datos de fechas como texto. Entonces mirando el código de tu UF de Clientes, en esa col envías datos de dirección.

'Aqui es cuando agregamos o modificamos el registro
Application.ScreenUpdating = False
ActiveCell = cbo_Nombre
ActiveCell.Offset(0, 1) = txt_Direccion      'es texto y no fecha
ActiveCell.Offset(0, 2) = txt_Telefono

Aclara entonces en qué col irán las fechas.

Gracias, es en la Columna B, donde están las fechas y de allí donde quiero hacer el filtro, que tengo que cambiar allí.

Saludos

En el archivo que le envíe esta el userform filtrar y allí hay código que usted me arreglo, y quiero utilizarlo para hacer los filtros, solo que en el código de los cinco optionbutton no que se que debo poner para que llame al código que hará el filtro.

Yo entendí tu petición pero vos no entendiste mi comentario.

En tu libro la col B tiene el campo Descripción y ahora le colocaste allí las fechas, pero quedaron como 'texto'.

Pasé los datos de esa col a fecha y así te queda la macro hasta la linea ' With hm. UsedRange'... luego sigue tu código tal como lo tenias.

Private Sub filtrar_click()
Dim fec1 As Date, fec2 As Date
Application.ScreenUpdating = False
'controlar que haya algún OB seleccionado
    If OptionButton1.Value = False And OptionButton2.Value = False And OptionButton3.Value = False And OptionButton4.Value = False And OptionButton5.Value = False Then
        MsgBox "Debes seleccionar algún botón de Cliente. Luego ejecuta nuevamente el botón de guardado.", , "ERROR"
        Exit Sub
    End If
'------------
Set hm = Sheets("filtros")
'borra filas de filtros anteriores manteniendo los titulos
hm.Rows("2:" & hm.Range("A" & Rows.Count).End(xlUp).Row).Delete
    '
fec1 = TextBox1
fec2 = TextBox2
    Hoja = ActiveSheet.Name  'no haria falta xq estas en la hoja elegida
    j = 2   'siempre sera la col 2
    For i = 2 To Sheets(Hoja).Range("A" & Rows.Count).End(xlUp).Row
        If Sheets(Hoja).Cells(i, j) >= fec1 And Sheets(Hoja).Cells(i, j) <= fec2 Then
            u = hm.Range("A" & Rows.Count).End(xlUp).Row + 1
            Sheets(Hoja).Rows(i).Copy
            'pegar solo valores y  formatos
            hm.Rows(u).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            hm.Rows(u).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
            hm.Cells(u, j).Interior.ColorIndex = 4
        End If
        Next
    '

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas