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

Erro em tempo de execução "91"


Caio Coelho

Pergunta

Oi gente,

Estou fazendo um macro, que se utiliza userforms, para colocar algumas informações em tabelas.

Entretanto, esta parte do macro está dando problema:

Private Sub CommandButton1_Click()

Dim vData As Date

Dim vMes As String

Dim vELinha As Integer

Dim vEColuna As Integer

Dim vDescricao As String

Dim vValor As Integer

Dim vParcelas As Integer

' Checar texto em branco

Erro:

Load CartaoDeCredito

With Me

If .TextBox1.Value = "" Or _

.TextBox2.Value = "" Or _

.TextBox3.Value = "" Then

Select Case True

Case .TextBox1.Value = ""

MsgBox "Você não inseriu uma descrição de gastos."

Case .TextBox2.Value = ""

MsgBox "Você não inseriu uma data corretamente."

Case .TextBox3.Value = ""

MsgBox "Você não inseriu o valor do gasto."

GoTo Erro

End Select

ElseIf .TextBox4.Value = "" Then

vParcelas = 1

End If

End With

' Checar data

If Not (IsDate(TextBox2.Text)) Then

MsgBox "Você não inseriu uma data corretamente."

Else

vData = CDate(TextBox2.Value)

vMes = StrConv((MonthName(Month(vData))), vbProperCase)

End If

' Inserir gasto no Resumo

Plan1.Activate

If Not IsNumeric(TextBox3.Value) Then

MsgBox "Você não inseriu o valor gasto corretamente."

Else

vValor = TextBox3.Value

End If

Plan1.Range("a1").Activate

vELinha = Plan1.Cells.Find(ComboBox2.Value).Row

vEColuna = Plan1.Cells.Find(what:=vMes, MatchCase:=False).Column

If Cells(vELinha, vEColuna).Value = 0 Then

Cells(vELinha, vEColuna).Formula = "=" & vValor

Else

Cells(vELinha, vEColuna).Formula = Cells(vELinha, vEColuna).Formula & "+" & vValor

End If

' Inserir gasto nos Meses

Plan2.Activate

Plan2.Cells.Find(what:=vMes, MatchCase:=False).Activate

Plan2.Cells.Find(what:=FormaDePagamento.OptionButton1.Value, MatchCase:=False).Offset(2, 0).Activate

ActiveCell.EntireRow.Insert

ActiveCell.Value = vData

ActiveCell.Offset(0, 1).Value = StrConv(TextBox1.Text, vbProperCase)

ActiveCell.Offset(0, 2).Value = vValor

ActiveCell.Offset(0, 3).Value = vParcelas

ActiveCell.Offset(0, 5).Value = StrConv(ComboBox1.Value, vbProperCase)

ActiveCell.Offset(0, 6).Value = StrConv(ComboBox2.Value, vbProperCase)

End Sub

Quando da execução da parte grifada, aparece o seguinte texto:

Erro em tempo de execução '91':

A variável do objeto ou a variável do bloco 'With' não foi definida

Quando eu depuro o erro, embora o valor da variável vMes apareça corretamente (com o nome do mês em questão), quando depuro a expressão .Find, consta o seguinte: "A expressão não está definida no contexto".

Alguém sabe como resolver o problema?

Grato desde já!

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