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

Gravar dados inseridos no user form


Fabiano Souza

Pergunta

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

Até agora não há respostas para essa pergunta

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...