Usuário com melhor resposta
Dificuldade no código

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"?
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
Todas as Respostas
-
-
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 -
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
-
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
-
-
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?
-
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
-