• 0
Sign in to follow this  
Fabiano Souza

Gravar dados inseridos no user form

Question

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

 

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this