Erro 13 ao gravar d...
 
Notifications
Clear all

Erro 13 ao gravar dados do formulario

7 Posts
3 Usuários
0 Reactions
1,575 Visualizações
(@pulcinelli)
Posts: 0
New Member
Topic starter
 

Boa noite pessoal estou com um problema no meu formulário criado pelo VBA que é um controle de rádios para uma cia aérea vou inclusive disponibilizar caso alguém queira usar como base. Bom nele possuo 4 campos um é a Matricula do Funcionário outro o nome abaixo tenho o campo radio e nome do radio que são preenchidos pelo combobox RE preenche nome e assim por diante porem quando gravo os dados aparece o erro 13 tipos incompatíveis alguem poderia me ajudar a depurar isso pois sou meio fraco com vba.

esse foi o código que utilizei para preencher a text.box
Private Sub matricula_Change()
MA = matricula.Value
i = Application.WorksheetFunction.Match(CLng(MA), Sheets("Cadastro").Range("A:A"), 0)
nome = Sheets("Cadastro").Cells(i, 2)
End Sub

ele retorna o erro na linha do i = Application.WorksheetFunction.Match

segue arquivo em anexo

desde ja agradeço

 
Postado : 13/11/2014 5:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Você poderia tentar aos poucos mudar seu código de inserção, em nossa base já tem demonstrado os mais variados exemplos.
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Att

 
Postado : 13/11/2014 5:51 pm
(@rlm)
Posts: 0
New Member
 

Pulcinelli, altere as rotinas conforme abaixo:

Private Sub matricula_Change()
If matricula.Value = "" Then Exit Sub
MA = matricula.Value
i = Application.WorksheetFunction.Match(CLng(MA), Sheets("Cadastro").Range("A:A"), 0)
nome = Sheets("Cadastro").Cells(i, 2)
End Sub

e

Private Sub cboradios_Change()
If cboradios.Value = "" Then Exit Sub
CA = cboradios.Value
i = Application.WorksheetFunction.Match(CLng(CA), Sheets("radios").Range("A:A"), 0)
cad_radios = Sheets("radios").Cells(i, 2)
End Sub

Motivo: Apos a inserção, são "limpos" esses botões, porem isso gera um change; e a rotina de procura não consegue avançar.

 
Postado : 14/11/2014 6:52 am
(@pulcinelli)
Posts: 0
New Member
Topic starter
 

Boa noite!!

Você poderia tentar aos poucos mudar seu código de inserção, em nossa base já tem demonstrado os mais variados exemplos.
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Att

bom dei uma pesquisada mas nada esta funcionando.

 
Postado : 16/11/2014 9:24 am
(@pulcinelli)
Posts: 0
New Member
Topic starter
 

Pulcinelli, altere as rotinas conforme abaixo:

Private Sub matricula_Change()
If matricula.Value = "" Then Exit Sub
MA = matricula.Value
i = Application.WorksheetFunction.Match(CLng(MA), Sheets("Cadastro").Range("A:A"), 0)
nome = Sheets("Cadastro").Cells(i, 2)
End Sub

e

Private Sub cboradios_Change()
If cboradios.Value = "" Then Exit Sub
CA = cboradios.Value
i = Application.WorksheetFunction.Match(CLng(CA), Sheets("radios").Range("A:A"), 0)
cad_radios = Sheets("radios").Cells(i, 2)
End Sub

Motivo: Apos a inserção, são "limpos" esses botões, porem isso gera um change; e a rotina de procura não consegue avançar.

rlm, colei seu código mas a partir disso ela fala que é impossível localizar o objeto na biblioteca, isso ta mais difícil do que eu imaginava

 
Postado : 16/11/2014 9:29 am
(@pulcinelli)
Posts: 0
New Member
Topic starter
 

Pulcinelli, altere as rotinas conforme abaixo:

Private Sub matricula_Change()
If matricula.Value = "" Then Exit Sub
MA = matricula.Value
i = Application.WorksheetFunction.Match(CLng(MA), Sheets("Cadastro").Range("A:A"), 0)
nome = Sheets("Cadastro").Cells(i, 2)
End Sub

e

Private Sub cboradios_Change()
If cboradios.Value = "" Then Exit Sub
CA = cboradios.Value
i = Application.WorksheetFunction.Match(CLng(CA), Sheets("radios").Range("A:A"), 0)
cad_radios = Sheets("radios").Cells(i, 2)
End Sub

Motivo: Apos a inserção, são "limpos" esses botões, porem isso gera um change; e a rotina de procura não consegue avançar.

rlm, colei seu código mas a partir disso ela fala que é impossível localizar o objeto na biblioteca, isso ta mais difícil do que eu imaginava

 
Postado : 16/11/2014 9:32 am
(@rlm)
Posts: 0
New Member
 

Se reparar, a alteração proposta em relação ao seu exemplo, é a inserção da linha IF seuControle = "" then exit sub; ou seja interromper o processamento se não houver valor no controle, nada foi acrescentado.
Essa mensagem de erro não tem motivo de ser, ou já havia mas era "ofuscada" pelo erro 13 retratado neste post.
A nova mensagem de erro, refere-se normalmente a uma biblioteca (Editor VBE --> Ferramentas -->Referencias) faltante ou corrompida. Verifique se alguma está identificada com ausente.
Segue seu modelo, aqui no excel 2010 funcionando.

 
Postado : 16/11/2014 10:07 am