Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário VBA Excel não funciona


Bookman

Pergunta

Boa tarde,

Estou tentanto criar um formulário que pesquisa dados no meu ficheiro em excel, mas não estou conseguindo, dá sempre erro:

 

"Run-time error '1004':

Select Method of worksheet class field"

 

E não consigo passar daqui.

 

Código:

Private Sub CommandButton1_Click()
 
     Pesquisa_Venda.Show False
 
End Sub


Private Sub TextBox1_AfterUpdate()

Dim intervalo As Range
Dim texto As String
Dim codigo As Long
Dim pequisa
Dim mensagem
codigo = TextBox1.Text
Sheets("Serviços").Select
Set intervalo = Range("A10:N100000")

On Error GoTo trataErro

Parceiro = Application.WorksheetFunction.VLookup(codigo, intervalo, 2, False)
Nomeclt = Application.WorksheetFunction.VLookup(codigo, intervalo, 3, False)
NIFclt = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False)
Tarifario = Application.WorksheetFunction.VLookup(codigo, intervalo, 7, False)
datarec = Application.WorksheetFunction.VLookup(codigo, intervalo, 10, False)
datareg = Application.WorksheetFunction.VLookup(codigo, intervalo, 11, False)
estado = Application.WorksheetFunction.VLookup(codigo, intervalo, 8, False)

TextBox2.Text = Nomeclt
TextBox3.Text = Parceiro
TextBox4.Text = NIFclt
TextBox5.Text = Tarifario
TextBox6.Text = datarec
TextBox7.Text = datareg
TextBox8.Text = estado
TextBox1.SetFocus

Exit Sub

trataErro:
   texto = "O NIF indicado não consta na base de dados"
   mensagem = MsgBox(texto, vbOKOnly + vbInformation)
   
End Sub

Private Sub UserForm_Click()

End Sub

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0
19 horas atrás, Bookman disse:

Olá Alyson

O Debug seleciona o erro em: Sheets("Serviços").Select

Talvez a planilha esteja bloqueada (Como disse o Alysson), ou ele não encontrou a planilha, ou o nome da mesma está errado (Mesmo que por uma virgula - a grosso modo). Mais é bom compartilhar um exemplo, ajuda na hora de ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa notie.

Vou mandar varias mensagens mais porque estou olhando o código ponto a ponto (preguiçoso mesmo kkkk)

1 - Assim que entrei notei que quase todas as "sheets" = planilhas/abas estão e para seu código funcionar precisa re-exibir as abas:

Sheets("Serviços").Visible = True
Sheets("Serviços").Select

A linha antes de select é para re-exibir "Serviços".

2 - Eu notei quando abrir que tinha um código que ficou incompleto, apesar de não testar ele eu só coloquei aqui como informação.

 

2018-07-30 (1).png

obs1.png

Link para o comentário
Compartilhar em outros sites

  • 0

Eu inicialmente não estava a conseguir fazer nada, então procurei um exemplo, copiei o código e adaptei à minha realidade.

Esse código em falta deve ter sido algo que apaguei sem querer 😞

Quanto às planilhas ocultas a ideia é mesmo esse, se reparar, o Modulo 1 serve mesmo para ativar e desativar as planilhas à medida que vão sendo utilizadas. Nesse caso esqueci-me de colocar!

Consegue ajudar a finalizar?

Editado por Bookman
falta de informação
Link para o comentário
Compartilhar em outros sites

  • 0

Olhando sua planilha antiga fiz as seguintes alterações:

Dentro do Código Pesquisa_Venda:

Private Sub TextBox1_AfterUpdate()
Consultar_servicos_vend
Dim intervalo As Range
Dim texto As String
Dim codigo As Long
Dim pequisa
Dim mensagem
codigo = TextBox1.Text
Sheets("Serviços").Select
Set intervalo = Sheets("Serviços").Range("A10:N100000")

On Error GoTo trataErro

Parceiro = Application.WorksheetFunction.VLookup(codigo, intervalo, 2, False)
Nomeclt = Application.WorksheetFunction.VLookup(codigo, intervalo, 3, False)
NIFclt = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False)
Tarifario = Application.WorksheetFunction.VLookup(codigo, intervalo, 7, False)
datarec = Application.WorksheetFunction.VLookup(codigo, intervalo, 10, False)
datareg = Application.WorksheetFunction.VLookup(codigo, intervalo, 11, False)
estado = Application.WorksheetFunction.VLookup(codigo, intervalo, 8, False)

TextBox2.Text = Nomeclt
TextBox3.Text = Parceiro
TextBox4.Text = NIFclt
TextBox5.Text = Tarifario
TextBox6.Text = datarec
TextBox7.Text = datareg
TextBox8.Text = estado
TextBox1.SetFocus
Menu_inicial
Exit Sub
Menu_inicial
trataErro:
   texto = "O NIF indicado não consta na base de dados"
   mensagem = MsgBox(texto, vbOKOnly + vbInformation)

End Sub

No meu caso eu não encontrei nada porque estava realmente vazio, anexo da planilha vazia:

image.thumb.png.cfe1ba411e898b9d55a3cc65d018b2da.png

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...