Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por wesleybonetti
#4583
Bom dia galera
Tenho uma planilha quase pronta em vba, estou com uma dificuldade, quero que quando eu montei esse código
Código: Selecionar todos
Private Sub txtCodigo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Aqui é selecionado a Planilha com seus dados (BASE) no nosso exemplo
    With Plan1.Range("A:A")
 
        'Aqui onde será digitado o que procurar

        Set c = .Find(txtcodigo.Value, LookIn:=xlValues, LOOKAT:=xlWhole)
 
        'Aqui outra tomada de decisão, caso encontre sua pesquisa, será retornado nas caixas de txtbox.
        If Not c Is Nothing Then
            txtrep.Text = c.Offset(0, 4)
            txtNome.Text = c.Offset(0, 3)
 
            'Fim da Pesquisa
        End If
       'Tomada de decisão em caso de não haver nenhum resultado
        If c Is Nothing Then
 
            'Sua mensagem ao usuário aqui
            MsgBox ("Nome Não Encontrado!!!"), vbOKOnly, ("Seu Aplicativo Pesquisando Dados")
        End If
 
        'Fim da Pesquisa
    End With
End Sub
que faz ele puxar na base o nome do cliente e o representante, mais meu critério esta dando erro alguém pode me ajudar,
planilha em anexo
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Henrique
Posts Avatar
#4590
Primeiramente eu diria que está faltando definir a variável "c"

Em segundo momento, não encontrei chamada a sua subrotina txtCodigo_Exit dentro dos códigos.

Outra questão é de onde você está referenciando o txtcodigo.Value?
Avatar do usuário
Por Reinaldo
Avatar
#4594
Fiquei confuso com o modelo apresentado, então vamos no que entendi.
A rotina do post está no formulário frmCadastro, porem o cursor não passa pelo campo que dispararia a rotina (TxtCodigo); o elemento de disparo não deveria ser o campo TxtCodig.
Se for TxtCodig, então "achando" o codigo deveria "fazer" o campo TxtRep igual ao valor da coluna "E" que está em branco; creio que aqui deveria ser na coluna "D", então o desloc deveria ser--> txtrep.Text = c.Offset(0, 3)
O mesmo para o campo txtnome, que deveria ser --> txtNome.Text = c.Offset(0, 1)
Assim sua rotina deveria ser:
Código: Selecionar todos
Private Sub txtCodig_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim c
'Aqui é selecionado a Planilha com seus dados (BASE) no nosso exemplo
    With Plan1.Range("A:A")
 
        'Aqui onde será digitado o que procurar

        Set c = .Find(txtCodig.Value, LookIn:=xlValues, LOOKAT:=xlWhole)
 
        'Aqui outra tomada de decisão, caso encontre sua pesquisa, será retornado nas caixas de txtbox.
        If Not c Is Nothing Then
            txtrep.Text = c.Offset(0, 3)
            txtNome.Text = c.Offset(0, 1)
 
            'Fim da Pesquisa
        End If
       'Tomada de decisão em caso de não haver nenhum resultado
        If c Is Nothing Then
 
            'Sua mensagem ao usuário aqui
            MsgBox ("Nome Não Encontrado!!!"), vbOKOnly, ("Seu Aplicativo Pesquisando Dados")
        End If
 
        'Fim da Pesquisa
    End With
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord