Hi Experts,
1ª Estou precisando de 2 Helps, quero armazenar o valor de um TextBox (Box_Valor_Despesa) como número, porém até agora sem sucesso, ele sempre grava como texto.
2º Também preciso que ele comece a gravar o valor deste TextBox a partir da linha 34, só que ele sempre tenta gravar antes, a coluna ele faz certo mas a linha não, quando coloco numa aba totalmente em branco ele funciona, porém a aba que eu quero é preenchida até a linha 30, e por algum motivo ele não está gravando os valores.
Alguém consegue me ajudar?
Segue o código abaixo.
................................................................................................................................................
Private Sub Box_Valor_Despesa_Change()
Call formataValor(Box_Valor_Despesa.Value)
End Sub
................................................................................................................................................
Private Sub Btn_Salvar_Click()
If Box_Valor_Despesa = "" Then
'Mensagem solicitando ao usuário que digite o Valor da Despesa
MsgBox "Preencha o campo com o Valor da Despesa"
Box_Valor_Despesa.SetFocus
Else
'Verificando a quantidade de linhas usadas na planilha
cont = Worksheets("teste").UsedRange.Rows.Count + 1
'Selecionando a planilha a ser usada como banco de dados
Worksheets("teste").Select
'Armazenando na planilha os dados inseridos pelo usuário
Cells(cont, 6) = Box_Valor_Despesa
'Limpando os campos após o cadastro da despesa
Box_Valor_Despesa = ""
'Mensagem de gravação concluída
MsgBox "Despesa Cadastrada com Sucesso!"
'Comando para salvar a planilha
ActiveWorkbook.Save
End Inf
End Sub
......................................................................................................................................
Modulo
Sub formataValor(valor)
If IsNumeric(valor) Then
If InStr(1, valor, "-") >= 1 Then valor = Replace(valor, "-", "") 'retira sinal negativo
If InStr(1, valor, ",") >= 1 Then valor = CDbl(Replace(valor, ",", "")) 'retirar a virgula
Select Case Len(valor) 'verifica casas para inserção de ponto
Case 1
numPonto = "00" & valor
Case 2
numPonto = "0" & valor
Case 6 To 8
numPonto = Left(valor, Len(valor) - 5) & "." & Right(valor, 5)
Case 9 To 11
numPonto = inseriPonto(8, valor)
Case 12 To 14
numPonto = inseriPonto(11, valor)
Case Else
numPonto = valor
End Select
numVirgula = Left(numPonto, Len(numPonto) - 2) & "," & Right(numPonto, 2)
Desp.Box_Valor_Despesa.Value = numVirgula
Else
If valor = "" Then Exit Sub
MsgBox "Número invalido", vbCritical, "Caracter Invalido"
Exit Sub
End If
End Sub
.................................................................................................................................................
Function inseriPonto(inicio, valor)
I = Left(valor, Len(valor) - inicio)
m1 = Left(Right(valor, inicio), 3)
m2 = Left(Right(valor, 8), 3)
F = Right(valor, 5)
If (m2 = m1) And (Len(valor) < 12) Then
inseriPonto = I & "." & m1 & "." & F
Else
inseriPonto = I & "." & m1 & "." & m2 & "." & F
End If
End Function
Postado : 08/04/2016 10:23 am