Boa tarde, pessoal. Estou há dias quebrando a cabeça com uma rotina e gostaria da ajuda de vocês.
Fiz uns formulários que serão utilizados em uma clínica. Um desses formulários é o de fluxo de caixa. Nele é possível inserir despesas e ver o total de despesas por período (período que o usuário digita em 2 textbox). Isso funcionou certinho porque a inserção da despesa é em 1 dia, ficando fácil a comparação entre datas.
O que não estou conseguindo fazer é um código que retorne as receitas, haja vista que a clínica tem planos individual, mensal, trimestral e semestral. Explicando melhor:
Quando se faz o cadastro do paciente, se escolhe o plano no formulário (combobox) e se insere a data de início do serviço. Um código automaticamente calcula a data de fim (1 mês, 3 meses ou 6 meses) e registra isso numa planilha.
A rotina das receitas, então, deve ir nessa planilha, verificar se as datas de início e fim do serviço estão dentro do período digitado pelo usuário em 2 textbox (um para início e outra para data do fim do período). Uma vez que retorne um valor verdadeiro, deve verificar o plano: Se é trimestral e o período inserido pelo usuário é de um mês, deve pegar o valor total pago e dividir por 3.. se o período inserido é de 2 meses, deve pegar o valor total, dividir por 3 e então multiplicar por 2.. se o período for igual a 3 meses ou mais, retorna o valor total pago.
Há solução para isso?
Desde já agradeço.
OBS; segue abaixo o que tentei fazer
Private Sub CmbBuscar3_Click()
If TxtDataInicio2.Text <> "" And TxtDataFim2.Text <> "" Then 'datainicio2 e datafim2 são os txtbox para inserção, pelo usuários, do período desejado
periodo = DateDiff("m", DateValue(TxtDataInicio2.Value), DateValue(TxtDataFim2.Value))
Else
MsgBox "Digite uma data de início e fim para a pesquisa"
GoTo Rotulo1
End If
nalunos = Sheets("ALUNOS").Cells(Rows.Count, 1).End(xlUp).Row
dinheiro = 0
debito = 0
credito = 0
Total = 0
For i = 2 To nalunos
If DateValue(TxtDataInicio2.Value) <= Sheets("ALUNOS").Cells(i, "N") And DateValue(TxtDataInicio2.Value) <= Sheets("ALUNOS").Cells(i, "O") And DateValue(TxtDataFim2.Value) >= Sheets("ALUNOS").Cells(i, "O") And DateValue(TxtDataFim2.Value) >= Sheets("ALUNOS").Cells(i, "N") Then
If Sheets("ALUNOS").Cells(i, "J") = "Trimestral" Then
If periodo <= 1 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 3)
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 3)
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 3)
GoTo continue
End If
End If
If 1 < periodo And periodo <= 2 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2
GoTo continue
End If
End If
If periodo > 2 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
End If
End If
If Sheets("ALUNOS").Cells(i, "J") = "Semestral" Then
If periodo <= 1 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + Sheets("ALUNOS").Cells(i, "L") / 6
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + Sheets("ALUNOS").Cells(i, "L") / 6
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L") / 6
GoTo continue
End If
End If
If 1 < periodo And periodo <= 2 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2
GoTo continue
End If
End If
If 2 < periodo And periodo <= 3 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3
GoTo continue
End If
End If
If 3 < periodo And periodo <= 4 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4
GoTo continue
End If
End If
If 4 < periodo And periodo <= 5 Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5
GoTo continue
End If
End If
If 5 < periodo Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + (Sheets("ALUNOS").Cells(i, "L"))
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + (Sheets("ALUNOS").Cells(i, "L"))
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L"))
GoTo continue
End If
End If
End If
If Sheets("ALUNOS").Cells(i, "J") = "Individual" Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
End If
If Sheets("ALUNOS").Cells(i, "J") = "Mensal" Then
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then
credito = credito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then
debito = debito + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then
dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L")
GoTo continue
End If
End If
End If
continue:
Next
Total = credito + debito + dinheiro
TxtReceitas.Text = "Receita em cartão de crédito: R$ " & credito & vbCrLf 'txtreceitas é onde irá retornar os cálculos
TxtReceitas.Text = TxtReceitas.Text & "Receita em cartão de débito: R$ " & debito & vbCrLf
TxtReceitas.Text = TxtReceitas.Text & "Receita em dinheiro: R$ " & dinheiro & vbCrLf
TxtReceitas.Text = TxtReceitas.Text & "Receita Total: R$ " & Total & vbCrLf
Rotulo1:
End Sub
Pergunta
pedrolantin
Boa tarde, pessoal. Estou há dias quebrando a cabeça com uma rotina e gostaria da ajuda de vocês.
Fiz uns formulários que serão utilizados em uma clínica. Um desses formulários é o de fluxo de caixa. Nele é possível inserir despesas e ver o total de despesas por período (período que o usuário digita em 2 textbox). Isso funcionou certinho porque a inserção da despesa é em 1 dia, ficando fácil a comparação entre datas.
O que não estou conseguindo fazer é um código que retorne as receitas, haja vista que a clínica tem planos individual, mensal, trimestral e semestral. Explicando melhor:
Quando se faz o cadastro do paciente, se escolhe o plano no formulário (combobox) e se insere a data de início do serviço. Um código automaticamente calcula a data de fim (1 mês, 3 meses ou 6 meses) e registra isso numa planilha.
A rotina das receitas, então, deve ir nessa planilha, verificar se as datas de início e fim do serviço estão dentro do período digitado pelo usuário em 2 textbox (um para início e outra para data do fim do período). Uma vez que retorne um valor verdadeiro, deve verificar o plano: Se é trimestral e o período inserido pelo usuário é de um mês, deve pegar o valor total pago e dividir por 3.. se o período inserido é de 2 meses, deve pegar o valor total, dividir por 3 e então multiplicar por 2.. se o período for igual a 3 meses ou mais, retorna o valor total pago.
Há solução para isso?
Desde já agradeço.
OBS; segue abaixo o que tentei fazer
Private Sub CmbBuscar3_Click() If TxtDataInicio2.Text <> "" And TxtDataFim2.Text <> "" Then 'datainicio2 e datafim2 são os txtbox para inserção, pelo usuários, do período desejado periodo = DateDiff("m", DateValue(TxtDataInicio2.Value), DateValue(TxtDataFim2.Value)) Else MsgBox "Digite uma data de início e fim para a pesquisa" GoTo Rotulo1 End If nalunos = Sheets("ALUNOS").Cells(Rows.Count, 1).End(xlUp).Row dinheiro = 0 debito = 0 credito = 0 Total = 0 For i = 2 To nalunos If DateValue(TxtDataInicio2.Value) <= Sheets("ALUNOS").Cells(i, "N") And DateValue(TxtDataInicio2.Value) <= Sheets("ALUNOS").Cells(i, "O") And DateValue(TxtDataFim2.Value) >= Sheets("ALUNOS").Cells(i, "O") And DateValue(TxtDataFim2.Value) >= Sheets("ALUNOS").Cells(i, "N") Then If Sheets("ALUNOS").Cells(i, "J") = "Trimestral" Then If periodo <= 1 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 3) GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 3) GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 3) GoTo continue End If End If If 1 < periodo And periodo <= 2 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 3) * 2 GoTo continue End If End If If periodo > 2 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If End If End If If Sheets("ALUNOS").Cells(i, "J") = "Semestral" Then If periodo <= 1 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + Sheets("ALUNOS").Cells(i, "L") / 6 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + Sheets("ALUNOS").Cells(i, "L") / 6 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L") / 6 GoTo continue End If End If If 1 < periodo And periodo <= 2 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 2 GoTo continue End If End If If 2 < periodo And periodo <= 3 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 3 GoTo continue End If End If If 3 < periodo And periodo <= 4 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 4 GoTo continue End If End If If 4 < periodo And periodo <= 5 Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5 GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L") / 6) * 5 GoTo continue End If End If If 5 < periodo Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + (Sheets("ALUNOS").Cells(i, "L")) GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + (Sheets("ALUNOS").Cells(i, "L")) GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + (Sheets("ALUNOS").Cells(i, "L")) GoTo continue End If End If End If If Sheets("ALUNOS").Cells(i, "J") = "Individual" Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If End If If Sheets("ALUNOS").Cells(i, "J") = "Mensal" Then If Sheets("ALUNOS").Cells(i, "M") = "Cartão Crédito" Then credito = credito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Cartão Débito" Then debito = debito + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If If Sheets("ALUNOS").Cells(i, "M") = "Dinheiro" Then dinheiro = dinheiro + Sheets("ALUNOS").Cells(i, "L") GoTo continue End If End If End If continue: Next Total = credito + debito + dinheiro TxtReceitas.Text = "Receita em cartão de crédito: R$ " & credito & vbCrLf 'txtreceitas é onde irá retornar os cálculos TxtReceitas.Text = TxtReceitas.Text & "Receita em cartão de débito: R$ " & debito & vbCrLf TxtReceitas.Text = TxtReceitas.Text & "Receita em dinheiro: R$ " & dinheiro & vbCrLf TxtReceitas.Text = TxtReceitas.Text & "Receita Total: R$ " & Total & vbCrLf Rotulo1: End Sub
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.