Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Erro 91 em VBA
-
- Acabou de chegar
- Mensagens: 8
- Registrado em: Seg Jun 27, 2011 5:04 pm
Erro 91 em VBA
Prezados, boa tarde.
Estou com dificuldade com um cadastro de formulários que fiz no excel 2010.Sou iniciante e fiz estes códigos com auxílio de outras planilhas baixadas.
Aparece Erro de tempo em execução '91' A variavel do objeto ou a variavel do bloco with não foi definida.
Minha planilha está em xlsm pois só consigo salva-la assim, como disponibilizo ela para vocês?
Grato.
Estou com dificuldade com um cadastro de formulários que fiz no excel 2010.Sou iniciante e fiz estes códigos com auxílio de outras planilhas baixadas.
Aparece Erro de tempo em execução '91' A variavel do objeto ou a variavel do bloco with não foi definida.
Minha planilha está em xlsm pois só consigo salva-la assim, como disponibilizo ela para vocês?
Grato.
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: Erro 91 em VBA
luiz, como fez adaptações utilizando códigos de outras planilhas, só pelo erro que postou fica dificil dar uma resposta correta, a única coisa referente a este erro é que temos uma variavel não declarada ou definida, que pode ser tanto o nome de uma aba, a referencia a uma celula ou range, entree outros, alem do fato de estar usando a versão excel 2010, aonde temos incompatibilidades entre alguns objetos com versões anteriores, referencias que não existem nas versões atuais, então sugiro, seguir a rotina passo a passo para saber exatamente em qual linha se da o erro, abra o editor do VBA e na rotina inicial, vá teclando "F8" e a rotina será executada passo a passo, linha por linha e irá parar na linha de erro que fcará destacada, então poste aqui, que se possivel analizaremos, apesar de o ideal seria postar seu modelo,mas como não possuo a versão 2010, a mesma não rodará na v 2003 nem na 2007.
abraços
abraços
-
- Acabou de chegar
- Mensagens: 8
- Registrado em: Seg Jun 27, 2011 5:04 pm
Re: Erro 91 em VBA
Mauro, bom dia. Realmente era isso, estava com um erro de digitação em uma variável, após concertar este problema, consegui rodar a macro e o formulário.
Muito obrigado pela ajuda Mauro.
Muito obrigado pela ajuda Mauro.
Editado pela última vez por luizmarcon em Ter Jun 28, 2011 10:57 am, em um total de 2 vezes.
-
- Acabou de chegar
- Mensagens: 8
- Registrado em: Seg Jun 27, 2011 5:04 pm
Re: Erro 91 em VBA
Prezados, Fiz varias correções e meu código inteiro está abaixo:
Apresenta ainda algun problemas como por exemplo não carrega a lista de estados no formulário, o código do correspondente não aparece no formulário, e ai ser acrescentado um nele, vai pra celula "CodCalc" e não pra celular A2 que deveria ser.
Apresenta ainda algun problemas como por exemplo não carrega a lista de estados no formulário, o código do correspondente não aparece no formulário, e ai ser acrescentado um nele, vai pra celula "CodCalc" e não pra celular A2 que deveria ser.
Código: Selecionar todos
Private Sub UserForm_Dados_Initialize()
AtualizaListaEstados
CadastroCodigo = Worksheets("Dados").Range("CodCalc").Value + 1
TextBox_Cod.Value = CadastroCodigo
End Sub
Sub AtualizaPlanilha()
With Dados
Cells(DadosLinha, 1).Value = TextBox_Cod.Value
Cells(DadosLinha, 2).Value = TextBox_Nome.Value
Cells(DadosLinha, 3).Value = TextBox_Contato.Value
Cells(DadosLinha, 4).Value = TextBox_email.Value
Cells(DadosLinha, 5).Value = TextBox_comarca.Value
Cells(DadosLinha, 6).Value = ComboBox_estado.Value
Cells(DadosLinha, 7).Value = TextBox_avenida.Value
Cells(DadosLinha, 8).Value = TextBox_num.Value
Cells(DadosLinha, 9).Value = TextBox_cep.Value
Cells(DadosLinha, 10).Value = TextBox_oab.Value
Cells(DadosLinha, 11).Value = TextBox_Banco.Value
Cells(DadosLinha, 12).Value = TextBox_ag.Value
Cells(DadosLinha, 13).Value = TextBox_conta.Value
Cells(DadosLinha, 14).Value = TextBox_op.Value
Cells(DadosLinha, 15).Value = TextBox_valor.Value
End With
End Sub
Sub AtualizaControles()
With Dados
TextBox_Cod.Value = Cells(DadosLinha, 1).Value
TextBox_Nome.Value = Cells(DadosLinha, 2).Value
TextBox_Contato.Value = Cells(DadosLinha, 3).Value
TextBox_email.Value = Cells(DadosLinha, 4).Value
TextBox_comarca.Value = Cells(DadosLinha, 5).Value
ComboBox_estado.Value = Cells(DadosLinha, 6).Value
TextBox_avenida.Value = Cells(DadosLinha, 7).Value
TextBox_num.Value = Cells(DadosLinha, 8).Value
TextBox_cep.Value = Cells(DadosLinha, 9).Value
TextBox_oab.Value = Cells(DadosLinha, 10).Value
TextBox_Banco.Value = Cells(DadosLinha, 11).Value
TextBox_ag.Value = Cells(DadosLinha, 12).Value
TextBox_conta.Value = Cells(DadosLinha, 13).Value
TextBox_op.Value = Cells(DadosLinha, 14).Value
TextBox_valor.Value = Cells(DadosLinha, 15).Value
End With
TextBox_Nome.SetFocus
End Sub
Sub AtualizaListaEstados()
With ComboBox_estado
.AddItem "Acre"
.AddItem "Alagoas"
.AddItem "Amapá"
.AddItem "Amazonas"
.AddItem "Bahia"
.AddItem "Ceará"
.AddItem "Distrito Federal"
.AddItem "Espírito Santo"
.AddItem "Goiás"
.AddItem "Maranhão"
.AddItem "Mato Grosso"
.AddItem "Mato Grosso do Sul"
.AddItem "Minas Gerais"
.AddItem "Pará"
.AddItem "Paraíba"
.AddItem "Paraná"
.AddItem "Pernambuco"
.AddItem "Piauí"
.AddItem "Rio de Janeiro"
.AddItem "Rio Grande do Sul"
.AddItem "Rio Grande do Norte"
.AddItem "Rondônia"
.AddItem "Roraima"
.AddItem "Santa Catarina"
.AddItem "São Paulo"
.AddItem "Sergipe"
.AddItem "Tocantins"
End With
End Sub
Private Sub ComboBox_pesquisa_Change()
If ComboBox_pesquisa.ListIndex = -1 Then
Exit Sub
End If
DadosLinha = ComboBox_pesquisa.ListIndex + 2
AtualizaControles
End Sub
Private Sub Excluir_Click()
Dim Retorno
If ComboBox_pesquisa.ListIndex = -1 Then
Retorno = MsgBox(" Nenhum correspondente selecionado", vbOKOnly + vbCritical, "Erro")
Exit Sub
End If
If MsgBox("Confirma exclusão?", vbYesNo + vbCritical, "Confirma") = vbNo Then
RestauraControles
Exit Sub
End If
With Dados
.Rows(DadosLinha).Delete
End With
Retorno = MsgBox("Exclusão Efetuada", vbOKOnly + vbCritical, "Sucesso")
RestauraControles
AtualizaComboBoxPesquisa
CadastroCodigo = Worksheets("Dados").Range("CodCalc").Value + 1
TextBox_Cod.Value = CadastroCodigo
End Sub
Private Sub Fechar_Click()
Unload UserForm_Dados
End Sub
Sub RestauraControles()
TextBox_Nome.Value = ""
TextBox_Contato.Value = ""
TextBox_email.Value = ""
TextBox_comarca.Value = ""
TextBox_avenida.Value = ""
TextBox_num.Value = ""
TextBox_cep.Value = ""
TextBox_oab.Value = ""
TextBox_Banco.Value = ""
TextBox_ag.Value = ""
TextBox_conta.Value = ""
TextBox_op.Value = ""
TextBox_valor.Value = ""
With ComboBox_estado
.ListIndex = -1
.Value = ""
End With
ComboBox_pesquisa.ListIndex = -1
TextBox_Nome.SetFocus
End Sub
Private Sub Limpar_Click()
RestauraControles
CadastroCodigo = Worksheets("Dados").Range("CodCalc").Value + 1
End Sub
Sub AtualizaComboBoxPesquisa()
TotalRegistros = Worksheets("Dados").UsedRange.Rows.Count
If TotalRegistros > 1 Then
With ComboBox_pesquisa
.Enabled = True
.RowSource = "Dados!B2:B" & TotalRegistros
End With
Else
With ComboBox_pesquisa
.Enabled = False
End With
End If
End Sub
Private Sub Salvar_Click()
If TextBox_Nome.Value = "" Then
MsgBox "Informe os dados", vbOKOnly + vbCritical, "Dados"
TextBox_Nome.SetFocus
Exit Sub
End If
If MsgBox("Confirma Atualização ?" & Chr(13) & Chr(13) & _
"Código: " & TextBox_Cod.Value & Chr(13) & Chr(13) & _
"Nome: " & TextBox_Nome.Value, vbYesNo + vbQuestion, "Confirmação") = vbNo Then
TextBox_Nome.SetFocus
Exit Sub
End If
If ComboBox_pesquisa.ListIndex = -1 Then
DadosLinha = Worksheets("Dados").UsedRange.Rows.Count + 1
Worksheets("Dados").Range("CodCalc").Value = CadastroCodigo
End If
AtualizaPlanilha
MsgBox "Atualização Efetuada"
RestauraControles
AtualizaComboBoxPesquisa
CadastroCodigo = Worksheets("Dados").Range("CodCalc").Value + 1
TextBox_Cod.Value = CadastroCodigo
End Sub
Editado pela última vez por luizmarcon em Ter Jun 28, 2011 10:59 am, em um total de 2 vezes.
-
- Acabou de chegar
- Mensagens: 8
- Registrado em: Seg Jun 27, 2011 5:04 pm
Re: Erro 91 em VBA
Desculpe sempre estar colocando mais coisa aqui, mas é que estou olhando linha por linha desse código.
Meu módulo está assim:
Meu módulo está assim:
Código: Selecionar todos
Option Explicit
Public DadosLinha As Integer
Public CadastroCodigo As Integer
Public Dados As Worksheet
Public TotalRegistros As Integer
Public Endereco As String
Public CaixaDialogo As FileDialog
Sub AtivaFormulario()
UserForm_Dados.Show
End Sub
Re: Erro 91 em VBA
Olá, estou tendo o mesmo problema mas não identifico o erro:
Selection.Find(What:=mesdata, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.Find(What:=mesdata, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Re: Erro 91 em VBA
O metodo Find retorna um objeto do tipo Range, que se nao encontrado, retorna nulo. Por isso o Activate no final da erro. Tente algo assim:
O teste eh por sua conta, ok?
Código: Selecionar todos
resultado = Selection.Find(What:=mesdata, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not resultado Is Nothing Then
' coloque seu codigo aqui
End If