Filtrar búsqueda por letra con la que comienza un código

Buenas tardes Dante, el buscador que generaste es excelente sin embargo hace falta un filtro más y lamentablemente no sé como hacerlo, necesito filtrar los códigos por categorías, por ejemplo: la categoría Alquiler debe filtrar los códigos que comienzan con A, la categoría Reparación debe filtrar los códigos que comienzan con R, etc..

1 Respuesta

Respuesta
1

Me envías tu archivo y me explicas en dónde están las categorías.

Recuerda poner en el asunto tu nombre de usuario: "Jose Gabriel"

Este es el código para filtrar por la letra

Private Sub busca_search()
'Por.Dante Amor
    'filtra los datos
    ListBox1 = ""
    Set t = Sheets("temporal")
    t.Cells.Clear
    With h1
        m = "X" 'columna de consecutivo
        u = .Range("A" & Rows.Count).End(xlUp).Row
        .Range(m & "5") = 5
        .Range(m & "6") = 6
        .Range(m & "7") = 7
        If u > 7 Then h1.Range(m & "5:" & m & "7").AutoFill _
            Destination:=h1.Range(m & "5:" & m & u), Type:=xlFillDefault
        With .Range("A4:" & m & u)
            If campo1 <> "" Then .AutoFilter Field:=1, Criteria1:=campo1
            If campo2 <> "" Then .AutoFilter Field:=4, Criteria1:=campo2
            If campo3 <> "" Then .AutoFilter Field:=6, Criteria1:=campo3
            If campo4 <> "" Then
                Select Case campo4
                    Case "Alquiler": letra = "A"
                    Case "Reparación": letra = "R"
                    Case "Confección": letra = "C"
                    Case "Accesorios": letra = "V"
                End Select
                .AutoFilter Field:=1, Criteria1:=letra & "*"
            End If
            .AutoFilter Field:=2, Criteria1:=">=" & Format(DTPicker1.Value, "mm/dd/yyyy"), _
                 Operator:=xlAnd, Criteria2:="<=" & Format(DTPicker2.Value, "mm/dd/yyyy")
            .SpecialCells(xlCellTypeVisible).Copy t.Range("A1")
            Me.ListBox1 = ""
        End With
        .Range("A4").AutoFilter
        cols = Array("A", 0, 0, "D", "E", "F", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "R", 0, 0, 0, 0, 0, 0)
        For i = LBound(cols) To UBound(cols)
            If cols(i) <> "0" Then n = Int(h1.Range(cols(i) & 1).Width + 5) Else n = 0
            ancho = ancho & n & ";"
        Next
    End With
    u = t.Range("C" & Rows.Count).End(xlUp).Row
    If u > 1 Then
        With Me.ListBox1
            .ColumnCount = Columns(m).Column
            .ColumnHeads = True
            .ColumnWidths = ancho
            .RowSource = t.Name & "!A2:" & m & u
        End With
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas