Notifications
Clear all

Filtro com espaço em branco direita

5 Posts
3 Usuários
0 Reactions
901 Visualizações
NERI S
(@neri-s)
Posts: 0
Estimable Member
Topic starter
 

Estou com um filtro que me dá um certo problema:

Quero filtra algo como "POEIRA BRANCA" porém o cadastro foi feito como "POEIRA BRANCA " ....Vejam que tem um espaço em branco no final, aí não filtra corretamente.

Sei que posso ir alterar na planilha manualmente e alterar a combobox que preenche isto. Até aí tudo bem, Mas se forem criados outro com espaço em branco no final?

uso a sub abaixo. Onde posso ajustar?

Sub filtrofisicoanexo1()
    Dim Tmp As Long
    Dim i As Long
    Dim sfiltrofisicoanexo1
    
    Tmp = FormPesquisa.ListView1.ListItems.Count
    
        If Me.cbofisicoan1.Value = "" Then
               ' MsgBox "É possível filtrar por qte3!" ', , "qte3 Obrigatória !!!"
                Me.cbofisicoan1.SetFocus
            Exit Sub
        End If
        
    sfiltrofisicoanexo1 = Me.cbofisicoan1.Value
    
    Tmp = FormPesquisa.ListView1.ListItems.Count

    For i = 1 To Tmp
        
        With ListView1
            If .ListItems(i).SubItems(19) > sfiltrofisicoanexo1 Then
                 FormPesquisa.ListView1.ListItems.Remove i
                    i = i - 1
                    Tmp = Tmp - 1
                        If i = Tmp Then Exit For
                            Tmp = FormPesquisa.ListView1.ListItems.Count
                 
            ElseIf .ListItems(i).SubItems(19) < sfiltrofisicoanexo1 Then
                    FormPesquisa.ListView1.ListItems.Remove i
                        i = i - 1
                        Tmp = Tmp - 1
                            If i = Tmp Then Exit For
                                Tmp = FormPesquisa.ListView1.ListItems.Count
            
            ElseIf .ListItems(i).SubItems(19) = sfiltrofisicoanexo1 Then
                 Tmp = Tmp
                    If i = Tmp Then Exit For
                        Tmp = FormPesquisa.ListView1.ListItems.Count
            End If
        End With
    Next
End Sub
 
Postado : 01/02/2017 1:00 pm
(@mprudencio)
Posts: 2749
Famed Member
 

É mais facil arrumar o que ja tem do que tentar contornar.

= arrumar (celula) elimina o espaço em branco depois e copiar e colar.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 01/02/2017 1:03 pm
NERI S
(@neri-s)
Posts: 0
Estimable Member
Topic starter
 

Também acho que seria melhor.

Acredito que tenha que entrar no cadastro dos "Agentes" e alterar onde salva (Talvez colocar um IF para ver se tem espaço a direita e tirá-lo. o que acha?

Private Sub SalvaRegistro(ByVal id As Long, ByVal indice As Long)
With wsCadastro
.Cells(indice, colCodigo).Value = id
.Cells(indice, coldescricao).Value = Me.txtdescr.Text
end sub

 
Postado : 01/02/2017 1:21 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite Neri,

Seguido a sugestão do Prudencio, o ideal seria corrigir na Base.
Caso você tenha a versão 2013 ou 2016 do Office você pode usar o 'Preenchimento Relâmpago' para trata-la facilmente, de uma olhada: https://www.youtube.com/watch?v=RgdKTFozidg

Um coisa, o Vba por padrão é Case-sensitive quando faz comparação de valores da célula, o recomendado é usar a função TRIM() (=Arrumar) e a UCase()(deixa maiúscula). Escrevi isso porque se os seus dados veem de um formulário do Excel o ideal é colocar pelo menos um TRIM() no momento que os valores vão para as células da Base, isso vai evitar esse problema.

Qualquer dúvida é só escrever.

att,

 
Postado : 01/02/2017 9:49 pm
NERI S
(@neri-s)
Posts: 0
Estimable Member
Topic starter
 

Amigo brunoxro

é isto mesmo que eu precisava. Muito obrigado. Testei e deu certinho.

 
Postado : 02/02/2017 4:37 am