Ir ao conteúdo
  • Cadastre-se

VBA - Impedir que insira nomes já cadastrados


Posts recomendados

Boa noite, pessoal.
Ainda estou na luta no aprendizado por VBA e gostaria que me ajudassem em um processo:
Impedir que cadastrem responsáveis ou setores que já se encontram cadastrados para que não haja duplicidade.
No momento consegui montar conforme planejei mas eu não consegui pensar em algo para impedir que façam essa duplicata.

Alguém saberia me dizer como fazer?

 

Se possível mas beeeeeeem menos importante, gostaria também de saber se é possível eliminar acentos das palavras ou se na parte de verificar se já está cadastrado, comparar nomes com e sem acentos, por exemplo, José e Jose seriam a mesma pessoa.

 

Obrigado.

PAM GUT 2017 form.rar

 

Críticas e sugestões na planilha também são muito bem vindas.

Link para o comentário
Compartilhar em outros sites

@diego_janjao os acentos fazem diferença no metodo de procura dos responsável ou setor, que utilizei. 

Acrescentei o corretor ortográfico do excel, para verificar e abrir a janela de correção para sugerir que o usuário corrija as palavras sem acentos, por exemplo, mas algumas palavras como "deposito", (sem o acento), pelo menos nas configurações regionais, do meu PC, o corretor não detectou.

A minha sugestão é, mas paliativa, é criar uma função que retire todos os acentos das palavras cadastradas (setores e responsáveis), e tambem retirar os acentos das palavras que o usuario inserir, desta forma, não terá problemas para comparar e localizar a duplicidade ou não.

 

                         

PAM GUT 2017 form_1.zip

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Isso é normal, mas não é o correto. Preciso alterar esta rotina, pois está em 2 eventos diferentes. um evento verifica a correção ortográfica e o outro faz a pesquisa. Um está conflitando o outro.

Depois eu incluo ambos eventos em um só, para que o usuário não precise clicar duas vezes. 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Basole , eu consegui unificar o código e acredito que esteja funcionando:

 

Option Explicit


Private Sub CommandButton1_Click()
    Dim rng As Range, o que As String, v As Variant
    For Each v In Split(txtSetor.Text)
           If Not Application.CheckSpelling(v) Then _
              MsgBox "'" & v & "' não é uma palavra válida.", _
                 vbExclamation, "Atenção"
         Next v
    txtSetor.Text = spellCheck(txtSetor.Text)
    txtSetor.Text = shOrtografia.Range("A1").Value2
    
With Sheets("Setores")
     o que = txtSetor.Text
     Set rng = .Columns(1).Find(o que, LookIn:=xlValues)
  If rng Is Nothing Then
  
        Application.ScreenUpdating = False
        Sheets("Setores").Select
        Range("A3").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
        Range("A3").Value = txtSetor.Value
        Range("A2").Select
        Range(Selection, Selection.End(xlDown)).Select
        ActiveWorkbook.Worksheets("Setores").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Setores").Sort.SortFields.Add Key:=Range("A2" _
            ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Setores").Sort
            .SetRange Range("A2:A50")
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("A2").Select
    
    Sheets("PAM GUT 2017").Select
    
    MsgBox "Novo setor adicionado!"
    
    txtSetor.Value = Empty 'Null

  Else
     MsgBox "Setor " & txtSetor.Value & " já existe!!", 64, "Atenção"
  End If
   
   
End With

End Sub

Porém estou enfrentando um problema em uma ferramenta que você inseriu que achei muito útil, quando a pessoa incluir uma palavra inexistente, abre  corretor. Até aí tudo bem, o problema que estou vendo é que quando abre a Verificação de Ortografia e se eu tento cancelar, ele inclui do mesmo jeito o nome errado.

Teria como mudar para quando cancelar a ortografia cancelar o evento inteiro?

 

PAM GUT 2017 form_1.rar

Link para o comentário
Compartilhar em outros sites

@diego_janjao A sugestão eu já fiz, no meu primeiro post. 

 

A minha sugestão é, mas paliativa, é criar uma função que retire todos os acentos das palavras cadastradas (setores e responsáveis), e tambem retirar os acentos das palavras que o usuario inserir, desta forma, não terá problemas para comparar e localizar a duplicidade ou não.    

 

Acho que seria a melhor forma. Isto é se na planilha, puder ficar com a ortografia errada. 

Pois eu sitei que para algumas palavras o corretor ortografico do excel, não abriu a janela para corrigir algumas palavras sem acentos. 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

O responsavel e o setor ja não esta pre cadastrado?

 

Nao existe uma lista?

 

Pessoalmente acho exagero desenvolver uma rotina inteira apenas para cadastrar 1 nome.

 

Como me parece que esse é um cadastro eventual, talvez você cadastre um novo setor ou um novo responsavel 1 vez no mes ou menos, eu faria esse cadastro diretamente na planilha.

 

E alem do nome utilize a matricula do funcionario para verificar se o mesmo ja esta cadastrado no seu sistema.

 

E setores provavelmetne você nao tem 50 setores diferentes dentro da fabrica, tambem é de fácil visualização, crie codigos para eles tambem.

 

 

Link para o comentário
Compartilhar em outros sites

@CasaDoHardware sim, sobre os responsáveis não são muitos mesmo. O problema é o conhecimento de todas as pessoas que vão mexer nela.

 

Sobre os setores pode ter certeza que terá mais de 100.

 

Mas entendo a sua colocação, o real problema é o conhecimento dessas pessoas que vão trabalhar com essa planilha.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...