Notifications
Clear all

Erro 91

17 Posts
3 Usuários
0 Reactions
6,209 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal, td bem?

Estou com um probleminha. Estou estudando o VBA Excel 2007 e estou seguindo passo a passo as aulas e qdo fui criar uma sub-rotina apareceu esse famoso erro 91, que diz o seguinte: "A variável do objeto ou a variável do bloco 'With' não foi definida.

Eis o código:

// do modulo

Public Linha As Integer

Public Agenda As Worksheet

Public TotalReg As Integer

-----------------------------

//do botão Limpar (o problema)

Private Sub cmdLimpar_Click()

LimpaCampos

End Sub

Sub LimpaCampos()

With Registro

lblCodigo.Caption = Agenda.Range("Registro").Value + 1
End With

txtNome.Value = ""

txtEmail.Value = ""

End Sub

-------------------------

// da planilha

Private Sub Workbook_Open()

Set Agenda = Application.Worksheet("Dados")

frmAgenda.Show

End Sub

------------------

O que pode ser? Algo a ver com o software não ser original? Ou o VBA não roda no Excel 2007?
Me ajudem!!!
Abs!!!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2010 12:17 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Verifique se tem o Range Nomeado que está referenciado na Rotina:

With Registro
..........lblCodigo.Caption = Agenda.Range("Registro").Value + 1
End With

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/11/2010 7:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Também estou fazendo este curso e deu o mesmo erro, alguém pode me ajudar ?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/07/2011 11:59 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Primeiro : Arrume a referência :
Set Agenda = Application.Worksheet("Dados") para
Set Agenda = Application.Worksheets("Dados"), o "s" faz diferença.

Segundo : elimine a mesma do Evento Open do Workbook

Terceiro : Coloque a instrução eliminada na rotina LimpaCampos, ficando assim :

Sub LimpaCampos()

Set Agenda = Application.Worksheets("Dados")

    With Registro
        lblCodigo.Caption = Agenda.Range("Registro").Value + 1
    End With

    txtNome.Value = ""
    txtEmail.Value = ""

End Sub

Quarto : O Label (lblCodigo) é carregado com um valor acrescido de + 1, que se encontra em uma Celula NOMEADA da Aba "dados", como "Registro", verifique se foi definido este nome nesta Aba.

abraços

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/07/2011 1:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

fiz tudo isto e continua dando o erro 91.

Alguma outra dica?

Abs.

Padunic

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2012 6:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

fiz tudo isto e continua dando o erro 91.

Alguma outra dica?

Abs.

Padunic

Private Sub cmdFechar_Click()

Unload frmAgenda

End Sub

Sub LimpaCampos()

With Registro
lblCodigo.Caption = Agenda.Range("Registro").Value + 1
End With

txtNome.Value = ""
txtEmail.Value = ""

End Sub

Private Sub cmdLimpar_Click()

LimpaCampos

End Sub

Sub SalvarReg()

With Agenda

.Cells(Linha, 1).Value = lblCodigo.Caption
.Cells(Linha, 2).Value = txtNome.Value
.Cells(Linha, 3).Value -txtEmail.Value

End With

End Sub

Sub MostrarReg()
With Agenda
lblCodigo.Caption = Cells(Linha, 1).Value
txtNome.Value = Cells(Linha, 2).Value
txtEmail.Value = Cells(Linha, 3).Value

End With

End Sub

Private Sub UserForm_Click()

Set Agenda = Application.Worksheets("Dados")

frmAgenda.Show

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2012 6:20 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Padu, poderia ser mais expecifico, dizendo em qual linha se dá o erro.

Você tem 3 Macros
Sub LimpaCampos()
Sub SalvarReg()
Sub MostrarReg()

Uma instrução associada ao Evento Click
Private Sub cmdFechar_Click()

Instruções associadas ao evento click do UserForm :
Private Sub UserForm_Click()
Set Agenda = Application.Worksheets("Dados")

frmAgenda.Show

End Sub

Enquanto aguardamos, eu arrisco alguns palpites :

With Registro - Foi declarada ? e qual o Tipo ?
Range("Registro") - Temos este campo Nomeado na Aba ?

Set Agenda = Application.Worksheets("Dados") - Existe a Aba "Dados" ?

Os nomes dados aos controles que se encontram no forumulário são os mesmos que estão nas rotinas ? eles existem no formulário ?

Verifique todas as Variáveis e Declarações, e se o erro persistir, procure informar a linha do erro.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2012 10:20 am
(@tiagomd)
Posts: 3
New Member
 

Estou fazendo mesmo curso estou com alguns problemas!
me ajudem a terminar

no modulo1

Public Linha As Integer

Public Agenda As Worksheet

Public TotalReg As Integer

Private Sub cmdAnterior_Click()

Linha = Linha - 1

If Linha < 3 Then
Linha = 2
cmdAnterior.Enabled = False
End If

If Linha < TotalReg Then
cmdProximo.Enabled = True
End If

MostrarReg

End Sub

Private Sub cmdExcluir_Click()

Dim Resposta

Resposta = MsgBox("Deseja excluir este registro?", vbYesNo + vbCritical, "Excluir Registro")

If Resposta = vbNo Then
Exit Sub
End If

With Agenda
.Rows(Linha).Delete
End With

TotalReg = Agenda.UsedRange.Rows.Count

Linha = 2

If TotalReg > 1 Then
MostrarReg
Else
LimparCampos
End If

End Sub

Private Sub cmdFechar_Click()

Unload frmAgenda

End Sub

Private Sub cmdLimpar_Click()

LimpaCampos

End Sub

Sub LimpaCampos()

lblCodigo.Caption = Agenda.Range("Registro").Value + 1

txtNome.Value = ""
txtEndereco.Value = ""
txtPai.Value = ""
txtMae.Value = ""
txtTelefone.Value = ""
txtNascimento.Value = ""
txtBatismo.Value = ""
txtNaturalidade.Value = ""
txtEmail.Value = ""

End Sub

Private Sub cmdNovo_Click()

LimpaCampos

TotalReg = Agenda.UsedRange.Rows.Count

Linha = TotalReg + 1

End Sub

Private Sub cmdProximo_Click()

If Linha > 1 Then
cmdAnterior.Enabled = True
End If

Linha = Linha + 1

If Linha >= TotalReg Then
Linha = TotalReg
cmdProximo.Enabled = False
End If

MostrarReg

End Sub

Private Sub cmdSalvar_Click()

Dim Codigo

If txtNome.Value = "" Then
MsgBox "Favor digitar o nome", vbOKOnly + vbCritical, "Salvar Registro"
txtNome.SetFocus
Exit Sub
End If

Codigo = Agenda.Range("Registro").Value + 1

Agenda.Range("Registro").Value = Codigo

SalvarReg

TotalReg = Agenda.UsedRange.Rows.Count

End Sub

Sub SalvarReg()

With Agenda
.Cells(Linha, 1).Value = lblCodigo.Caption
.Cells(Linha, 2).Value = txtNome.Value
.Cells(Linha, 3).Value = txtEndereco.Value
.Cells(Linha, 4).Value = txtPai.Value
.Cells(Linha, 5).Value = txtMae.Value
.Cells(Linha, 6).Value = txtTelefone.Value
.Cells(Linha, 7).Value = txtNascimento.Value
.Cells(Linha, 8).Value = txtBatismo.Value
.Cells(Linha, 9).Value = txtNaturalidade.Value
.Cells(Linha, 10).Value = txtEmail.Value
End With

End Sub

Sub MostrarReg()

With Agenda
lblCodigo.Caption = .Cells(Linha, 1).Value
txtNome.Value = .Cells(Linha, 2).Value
txtEndereco.Value = .Cells(Linha, 3).Value
txtPai.Value = .Cells(Linha, 4).Value
txtMae.Value = .Cells(Linha, 5).Value
txtTelefone.Value = .Cells(Linha, 6).Value
txtNascimento.Value = .Cells(Linha, 7).Value
txtBatismo.Value = .Cells(Linha, 8).Value
txtNaturalidade.Value = .Cells(Linha, 9).Value
txtEmail.Value = .Cells(Linha, 10).Value
End With

End Sub

 
Postado : 30/01/2012 12:37 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tiago, peço a gentileza de manter o foco em um só tópico quando se tratar da mesma duvida, alias o ideal seria abrir um novo, uma vez que as vezes as duvidas podem parecer iguais, mas cada uma tem sua particularidade, assim mantemos o Forum organizado, sendo assim apaguei o outro tópico e vamos nos manter focado neste.

Quanto a sua questão, para que se possa dar uma resposta mais exata, você tem de colocar qual o erro e em qual linha acontece, sem isto não tem como saber a que erro se refere.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2012 12:57 pm
(@tiagomd)
Posts: 3
New Member
 

Erro em tempo de excecução 1004

Gostaria de lhe enviar o arquivo para voce dar uma olhada

tem algum email?

 
Postado : 30/01/2012 1:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Veja no anexo se o auxilia, pois é muito similar ao que postou (faltam alguns campos), mas aparentemente está OK

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2012 2:43 pm
(@tiagomd)
Posts: 3
New Member
 

Veja no anexo o que pode está ocorrendo, sou iniciante. Estou tentando finalizar este cadastro!

 
Postado : 31/01/2012 6:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

É possivel ser mais explicito, o que ocorre quando voce faz oque??.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/01/2012 7:20 am
bauhaus
(@bauhaus)
Posts: 14
Active Member
 

Relmente ta osso. Mesmo erro. E na célula Registro, não aparece o número do registro nem passa para frente... :(

 
Postado : 04/02/2012 6:39 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Segue arquivo revisado, aparentemente está funcionando OK,

descompacteo no c:;

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/02/2012 5:14 am
Página 1 / 2