Sou novato em VBA e estou tentando criar um formulário para lançamento de algumas informações. Esse formulário coleta o nome e o departamento do funcionário baseado no numero de matricula (txtCIF) inserido utilizando Vlookup. Existem outras txtBox (Data e Observação) que são gravadas em uma planilha.
Tive um problema com o código pois ao gravar, recebo a mensagem de erro de tempo de execução "13" - Tipos incompatíveis. Ao depurar o erro, me cai na linha codigo = txtCIF.
Envio o código abaixo, poderiam me auxiliar?
"Vlookup"
Private Sub txtCIF_AfterUpdate()
Dim intervalo As Range
Dim texto As String
Dim codigo As Integer
Dim mensagem
codigo = txtCIF
Sheets("banco").Select
Set intervalo = Range("c2:g250")
Exit Sub
Erro:
texto = "Digite CIF válida"
mensagem = MsgBox(texto, vbOKOnly + vbInformation)
End Sub
"Gravação das informações"
Private Sub cmdGravar_Click()
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Dados").Activate
'Selecionar a célula A3
Range("A2").Select
'Procurar a primeira célula vazia
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
'Verificar se foi digitado um nome na primeira caixa de texto
If txtCIF.Value = "" Then
MsgBox "Digite a CIF do Monitor"
txtCIF.SetFocus
Exit Sub
End If
'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = txtCIF.Value
ActiveCell.Offset(0, 1).Value = txtData.Value
ActiveCell.Offset(0, 2).Value = txtNome.Value
ActiveCell.Offset(0, 3).Value = txtDepartamento.Value
ActiveCell.Offset(0, 4).Value = cboMotivo.Value
ActiveCell.Offset(0, 5).Value = txtObservação.Value
'Limpar as caixas de texto
txtCIF.Value = Empty
txtData.Value = Empty
txtNome.Value = Empty
txtDepartamento.Value = Empty
txtObservação = Empty
'Limpar as caixas de combinação
cboMotivo.Value = Empty
'Colocar o foco na primeira caixa de texto
txtCIF.SetFocus
End Sub
Pergunta
Fabiano Souza
Boa noite, pessoal.
Sou novato em VBA e estou tentando criar um formulário para lançamento de algumas informações. Esse formulário coleta o nome e o departamento do funcionário baseado no numero de matricula (txtCIF) inserido utilizando Vlookup. Existem outras txtBox (Data e Observação) que são gravadas em uma planilha.
Tive um problema com o código pois ao gravar, recebo a mensagem de erro de tempo de execução "13" - Tipos incompatíveis. Ao depurar o erro, me cai na linha codigo = txtCIF.
Envio o código abaixo, poderiam me auxiliar?
"Vlookup"
Private Sub txtCIF_AfterUpdate()
Dim intervalo As Range
Dim texto As String
Dim codigo As Integer
Dim mensagem
codigo = txtCIF
Sheets("banco").Select
Set intervalo = Range("c2:g250")
On Error GoTo Erro
pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 5, False)
txtNome = pesquisa
pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 2, False)
txtDepartamento = pesquisa1
Set intervalo = Range("c2:d250")
On Error GoTo Erro
Exit Sub
Erro:
texto = "Digite CIF válida"
mensagem = MsgBox(texto, vbOKOnly + vbInformation)
End Sub
"Gravação das informações"
Private Sub cmdGravar_Click()
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Dados").Activate
'Selecionar a célula A3
Range("A2").Select
'Procurar a primeira célula vazia
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
'Verificar se foi digitado um nome na primeira caixa de texto
If txtCIF.Value = "" Then
MsgBox "Digite a CIF do Monitor"
txtCIF.SetFocus
Exit Sub
End If
'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = txtCIF.Value
ActiveCell.Offset(0, 1).Value = txtData.Value
ActiveCell.Offset(0, 2).Value = txtNome.Value
ActiveCell.Offset(0, 3).Value = txtDepartamento.Value
ActiveCell.Offset(0, 4).Value = cboMotivo.Value
ActiveCell.Offset(0, 5).Value = txtObservação.Value
'Limpar as caixas de texto
txtCIF.Value = Empty
txtData.Value = Empty
txtNome.Value = Empty
txtDepartamento.Value = Empty
txtObservação = Empty
'Limpar as caixas de combinação
cboMotivo.Value = Empty
'Colocar o foco na primeira caixa de texto
txtCIF.SetFocus
End Sub
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.