Jump to content
Fórum Script Brasil
  • 0

Erro em tempo de execução "91"


Caio Coelho

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...