none
Dificuldade no código RRS feed

  • Pergunta

  • Bom dia, pessoal!

    Estou desenvolvendo um cadastro de colaboradores para a empresa aonde trabalho. Um dos critérios do cadastro do colaborador é o "código de identificação do funcionário". Contudo, o "código VBA" que estou utilizando não reconhece o código de identificação do colaborador.

    Por exemplo:

    O colaborador "X" está cadastrado com o código 000.320 (exatamente dessa forma). Quando digito esse valor na combobox, o código VBA não encontra esse valor. E o mesmo acontece com o CPF. Já no caso do nome, o sistema funciona perfeitamente.

    Alguém pode me ajudar?

    Segue o código VBA que estou utilizando na combobox:

    -------------

    Private Sub cmb_Codigo_Change()

    Sheets("Filtro").Select
    Sheets("Filtro").Cells(3, 1) = Me.cmb_Codigo

    Call Filtrar
    Call Lista

    End Sub

    -------------

    Será que o problema está nas macros "Filtrar" ou "Lista"?

    sexta-feira, 1 de dezembro de 2017 11:56

Respostas

  • VEJA SE ASSIM MELHORA:

    Range("A5:BL20003").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            CSTR(Range("Filtro!Criteria")), Unique:=False


    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    • Marcado como Resposta Vejabem terça-feira, 5 de dezembro de 2017 11:14
    sábado, 2 de dezembro de 2017 04:07

Todas as Respostas

  • poste a filtrar e a lista

    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    sexta-feira, 1 de dezembro de 2017 12:04
  • Segue, Anderson:

    -----------------

    Sub Filtrar()
    '
    ' Filtrar Macro
    '

    '
        Range("A5:BL20003").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Range("Filtro!Criteria"), Unique:=False
    End Sub

    ------------------

    Sub Lista()

    ListView1.ListItems.Clear

    Sheets("Filtro").Select

    linha = 6

    Do Until Sheets("Filtro").Cells(linha, 1) = ""

    If Cells(linha, 1).Rows.Hidden = False Then

    Set li = Me.ListView1.ListItems.Add(Text:=Sheets("Filtro").Cells(linha, 1).Value)
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 2).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 6).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 35).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 36).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 37).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 38).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 39).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 40).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 41).Value
        li.ListSubItems.Add Text:=Format(Sheets("Filtro").Cells(linha, 43).Value, "currency")
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 44).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 45).Value
        li.ListSubItems.Add Text:=Format(Sheets("Filtro").Cells(linha, 59).Value, "currency")
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 46).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 47).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 48).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 49).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 50).Value
        li.ListSubItems.Add Text:=Sheets("Filtro").Cells(linha, 51).Value
        li.ListSubItems.Add Text:=Format(Sheets("Filtro").Cells(linha, 60).Value * 100) & "%"
        li.ListSubItems.Add Text:=Format(Sheets("Filtro").Cells(linha, 64).Value, "currency")
        

    End If

    linha = linha + 1

    Loop

    End Sub

    sexta-feira, 1 de dezembro de 2017 14:00
  • O problema é de formatação. Formate o campo cpf como texto ou quando for fazer a busca por CPF converta-o para String

    CStr(CPF)


    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    • Sugerido como Resposta AndersonFDiniz2 sexta-feira, 1 de dezembro de 2017 14:15
    sexta-feira, 1 de dezembro de 2017 14:15
  • Como está reconhecendo o nome, significa que está reconhecendo apenas os campos do tipo String (texto), provavelmente o CPF está em outro formato

    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    sexta-feira, 1 de dezembro de 2017 14:17
  • Estude um pouco de conversão de dados no VBA

    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    sexta-feira, 1 de dezembro de 2017 14:18
  • Boa tarde, Anderson!

    O código do colaborador está sendo registrado nesse formato:

    ----------------

    Private Sub txtCodigo_Change()
    txtCodigo = Format(txtCodigo, "000"".""000")
    End Sub

    ----------------

    Como faço para aplicar a variável String nesse caso?

    sexta-feira, 1 de dezembro de 2017 17:41
  • VEJA SE ASSIM MELHORA:

    Range("A5:BL20003").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            CSTR(Range("Filtro!Criteria")), Unique:=False


    A MELHOR FORMA DE AGRADECER E VOTAR COMO UTIL OU MARCAR COMO RESPOSTA Anderson Diniz diniabr2011@gmail.com

    • Marcado como Resposta Vejabem terça-feira, 5 de dezembro de 2017 11:14
    sábado, 2 de dezembro de 2017 04:07
  • Obrigado, Anderson!
    terça-feira, 5 de dezembro de 2017 11:14