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".
Question
Caio Coelho
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.