Página 1 de 1

Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 06:58
por NelyRobson
Bom dia

Professor GURU,

Sou um principiante em VBA com macro nos meus conhecimentos que são pouco foram todos pela internet no youtube e outros sites.

Estou fazendo uma planilha de contas a pagar aqui na empresa que eu trabalho e estou querendo fazer uma situação automática para quando for digitado nas células exemplo H, I,J, I e L a J -> fica a data de registro que automática do sistema, a célula I -> eu lanço a data de Vencimento a célula J é a data da Confirmação do Pagamento e a célula seguinte que é a L -> é a SITUAÇÃO ou STATOS.

Como seria o resultados deste macro é o seguinte:

Exemplo: " H <= I " Resultado é --> NO PRAZO
" H > I " Resultado é --> VENCIDO
" L > "" " Resultado é --> PAGO

Tudo isso é a traveis de um BOTÃO Adicionar, como este macro do botão.

'PROCEDIMENTO PARA ADICIONAR DADOS AO BD
Public Sub Adicionar()
Dim linha As Integer
Dim conte As Integer
Application.ScreenUpdating = False
linha = 4
conte = 1

If shtPainel.Range("A6") = 1 Then
If shtPainel.Range("Receita") = "" Or shtPainel.Range("Valor") = "" Then
MsgBox "Os campos RECEITA e VALOR São Obrigatórios!", vbCritical, "CAMPOS VAZIOS"
Exit Sub
End If
Else
If shtPainel.Range("CategoriaDespesa") = "" Or shtPainel.Range("Despesa") = "" Or shtPainel.Range("Valor") = "" Then
MsgBox "Os campos CATEGORIA DA DESPESA, DESPESA e VALOR São Obrigatórios!", vbCritical, "CAMPOS VAZIOS"
Exit Sub
End If
End If

Do Until shtDados.Cells(linha, "A") = ""
linha = linha + 1
conte = conte + 1
Loop
shtDados.Cells(linha, "A") = conte
shtDados.Cells(linha, "B") = shtPainel.Range("CategoriaDespesa").Value

If shtPainel.Range("Receita") = "" Then
shtDados.Cells(linha, "C") = shtPainel.Range("Despesa").Value
shtDados.Cells(linha, "D") = "Despesa"
Else
shtDados.Cells(linha, "C") = shtPainel.Range("Receita").Value
shtDados.Cells(linha, "D") = "Receita"
End If

shtDados.Cells(linha, "E") = shtPainel.Range("Valor").Value

If Format(Now, "dd/mm/yyyy") <= shtDados.Cells(linha, "I") Then ' Dt Registro <= Dt Venc. = NO PRAZO
shtDados.Cells(linha, "I") = shtPainel.Range("DtVenc") & " VENCIDO" '.Value
MsgBox "Vencido"
Else
shtDados.Cells(linha, "I") = shtPainel.Range("DtVenc") & " NO PRAZO" '.Value
MsgBox "No Prazo"
End If

shtDados.Cells(linha, "I") = shtPainel.Range("DtVenc").Value

shtDados.Cells(linha, "J") = shtPainel.Range("DtPag").Value

If shtPainel.Range("Mes") = "" Then
shtDados.Cells(linha, "F") = MonthName(Month(Now))
Else
shtDados.Cells(linha, "F") = LCase(shtPainel.Range("Mes").Value)
End If

If shtPainel.Range("Ano") = "" Then
shtDados.Cells(linha, "G") = Year(Now)
Else
shtDados.Cells(linha, "G") = shtPainel.Range("Ano").Value
End If

shtDados.Cells(linha, "H") = Format(Now, "dd/mm/yyyy")
shtDados.Cells(linha, "L") = shtPainel.Range("Obs").Value '(LINHA, "I")

'If shtDados.Cells(linha, "D") = "Despesa" Then
'shtDados.Cells(linha, "E") = shtPainel.Range("Valor").Value * -1
'Else
'shtDados.Cells(linha, "E") = shtPainel.Range("Valor").Value
'End If

MsgBox "Lançamento Completado com Sucesso", vbInformation, "LANÇAMENTOS"
Application.ThisWorkbook.Save
LimparCampos
Application.ScreenUpdating = True
End Sub

Espero que der para os colegas entenda isso que eu quero fazer.

Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 12:53
por DJunqueira
Me parece q boa parte do seu código poderia ser feito com uso funções.

Re: Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 14:12
por wesleyribeiro123
Caro NelyRobson,

Seria ideal que postasse um exemplo desta planilha pra gente...
Coloque alguns valores fictícios e poste aqui para tentar lhe ajudar...

Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 15:30
por NelyRobson
Boa tarde

Caros colegas deste site do Guru do Excel, está planilha eu baixe da net.

segue ela em anexo, grato pela ajuda dos colegas e espero ajuda de quem puder me ajudar neste caso citado acima.

Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 15:37
por NelyRobson
Caros Colegas na primeira tela ela tem os campos para que seja lançados os dados necessários.

O problema está nas datas a do vencimento, se vocês testarem lançar este exemplo uma data menor que a do dia em vigência.
O resultado teria de ser o seguinte na PLANILHA de DADOS COLUNA SITUAÇÃO ficaria VENCIDO
Depois lance uma data igual ao do dia. O resultado teria de ser o seguinte na PLANILHA de DADOS COLUNA SITUAÇÃO ficaria NO PRAZO
O outro resultado é quando a COLUNA PAGAMENTO estiver com dados e não for mais limpo o campo na SITUAÇÃO ficaria PAGO.

Ajuda com Macro - NELINHO

Enviado: 28 Dez 2016 às 15:39
por DJunqueira
Não uso o compactador .rar, prefiro usar o compactador nativo do Windows .zip.
Para usar o zip basta clicar no arquivo com o botão direito e selecionar Enviar para / Pasta compactada.

Re: Ajuda com Macro - NELINHO

Enviado: 29 Dez 2016 às 06:28
por NelyRobson
Bom dia

Não sei se seria desta forma mais vai veja se era isso.

Atenciosamente,