MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Solução de Problema

    avatar
    matpalmeiras7
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/05/2017

    Solução de Problema Empty Solução de Problema

    Mensagem  matpalmeiras7 26/5/2017, 12:43

    Bom dia, tenho o seguinte problema a resolver: " A ideia é sabermos o capital inicial disponível, informações sobre possíveis fundos de investimento e o capital final desejado. O programa deve verificar para cada fundo, qual o prazo necessário para alcançar o capital desejado. Com base nos prazos calculados e no perfil do investidor, o programa deve aconselhar qual o melhor fundo para investimento.
    O programa deve receber do usuário um perfil de risco (Muito Alto, Alto, Médio, Baixo), um capital inicial e um capital final desejado. Estes dados estarão em uma segunda planilha, conforme explicado abaixo.

    Com estes dados, o programa deve selecionar o fundo mais adequado para aquele investidor, levando em conta:

    O capital inicial deve ser pelo menos igual ao mínimo inicial do fundo.
    O risco do fundo deve ser menor ou igual ao do perfil do investidor.
    O número de meses necessários deve ser o menor entre os fundos que satisfazem as duas condições acima.
    O programa deverá preencher uma segunda planilha, chamada Resultados.

    Na primeira linha da planilha Resultados, o usuário deve colocar os dados de entrada: na célula A1 deverá aparecer o perfil (ex. "Baixo"), na B1 o capital inicial (ex. "100") e na C1 o capital final (ex. "1000").

    Na célula A2 deve aparecer "Fundo" e na B2 deve aparecer "Meses"

    A partir da terceira linha, o programa deverá colocar na primeira coluna o nome do fundo e na segunda coluna o número de meses necessários para atingir o capital final.

    Seu programa deve ter no mínimo as funções e macros auxiliares descritas abaixo:

    Function Prazo(CapInicial As Double, CapFinal As Double, TaxaAdmin As Double, Rentabilidade As Double) As Integer
    Função que recebe os quatro parâmetros reais - dois fornecidos pelo usuário na planilha de Resultados e dois lidos da tabela de fundos - e devolve um inteiro correspondendo ao número de meses necessários para atingir o capital final. Como a taxa de administração geralmente é dada por ano, o valor a ser subtraido da rentabilidade é TaxaAdmin/12.

    Sub PreencheTabela(CapInicial As Double, CapFinal As Double)
    Macro auxiliar que recebe os valores do capital inicial e do capital final e preenche as linhas da planilha Resultados com o nome de cada fundo e o prazo necessário. Esta macro deve utilizar a função Prazo.

    Function AvaliaRisco(Perfil As String, Linha As Integer) As Boolean
    Função que verifica se um certo fundo (especificado pelo parâmetro Linha, que indica a linha na tabela de fundos) está de acordo com o perfil do usuário.



    Vocês podem criar quantas funções e macros quiserem, desde que tenham no mínimo as três acima. Além disso, a coluna D da planilha Resultados pode ser usada de rascunho durante a execução do programa - lembre-se de apagá-la no final. A resposta deve ser dada nas células D1 e E1, informando o nome do fundo mais adequado ao investidor em D1 e o número de meses necessário em E1.

    IMPORTANTE:

    a macro principal, que vai chamar as demais e preencher a tabela deve ter o mesmo cabeçalho para todos: Sub Main()
    a planilha com a tabela de rentabilidade deve se chamar "Rentabilidade"
    a ordem entre as planilhas "Rentabilidade" e "Resultado" não importa, vocês devem sempre se referir às células pelo "nome completo", i.e., identificando a planilha."

    Para isso, desenvolvi o programa abaixo, mas penso que não está correto:

    "Sub Main()
    Dim lin As Integer
    Dim menor As Integer
    Dim fundo As String

    PreencheTabela 'aciona a macro auxiliar para preencher a tabela
    AvaliaRisco = True 'checa se o risco é compativel
    lin = 3
    menor = Worksheets(Resultados).Cells(2, 2) 'primeiro elemento dos meses
    fundo = Worksheets(Resultados).Cells(1, 2)

    While Worksheets(Resultados).Cells(lin, 2) <> 0
    If Worksheets(Resultados).Cells(lin, 2) < menor Then
    menor = Worksheets(Resultados).Cells(lin, 2) 'compara para ver qual é menor
    End If

    lin = lin + 1


    Wend
    Worksheets(Resultados).Cells(1, 5) = menor
    Worksheets(Resultados).Cells(1, 4) = fundo



    End Sub


    Function Prazo(CapInicial As Double, CapFinal As Double, TaxaAdmin As Double, Rentabilidade As Double) As Integer

    Dim lin As Integer
    Dim meses As Integer


    lin = 2
    meses = 0
    CapInicial = Worksheets(Resultado).Cells(1, 2)
    CapFinal = Worksheets(Resultado).Cells(1, 3)
    TaxaAdmin = Worksheets(Rentabilidade).Cells(lin, 3)
    Rentabilidade = Worksheets(Rentabilidade).Cells(lin, 5)


    While CapInicial < CapFinal

    CapInicial = CapInicial + (CapInicial * Rentabilidade / 100) * (1 - TaxaAdmin / 1200) 'Como a taxa de Adm deve ser dividida por 12, ela se torna 1200 pois também é necessario dividir por 100 devido se tratar de uma porcentagem
    meses = meses + 1 'para contar quantos meses são necessários para atingir o capital final

    Wend

    Prazo = meses 'a função recebe o valor do numero de meses necessarios pra atingir o capital final



    End Function

    Sub PreencheTabela(CapInicial As Double, CapFinal As Double)
    Dim NomeFundo As String
    Dim PrazoFundo As Integer
    Dim lin As Integer

    lin = 2
    CapInicial = Worksheets(Resultado).Cells(1, 2)
    CapFinal = Worksheets(Resultado).Cells(1, 3)
    NomeFundo = Worksheets(Rentabilidade).Cells(lin, 1)



    While Not IsEmpty(Worksheets(Rentabilidade).Cells(lin, 1))
    Worksheets(Resultados).Cells(lin, 1) = NomeFundo 'imprimir o nome do fundo nas celulas pedidas
    PrazoFundo = Prazo 'ativar a função Prazo
    Worksheets(Resultados).Cells(lin, 2) = PrazoFundo 'imprimir o numero de meses necessário nas celulas pedidas"
    O que está incorreto? Obrigado
    A tabela está anexada também.
    avatar
    matpalmeiras7
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/05/2017

    Solução de Problema Empty oi

    Mensagem  matpalmeiras7 29/5/2017, 02:23

    alguem?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    Solução de Problema Empty Re: Solução de Problema

    Mensagem  JPaulo 29/5/2017, 09:49

    Este é um fórum exclusivamente Ms Access.

    Tópico movido para Off-Topic.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Solução de Problema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Solução de Problema Folder_announce_new 102 Códigos VBA Gratuitos...
    Solução de Problema Folder_announce_new Instruções SQL como utilizar...
    avatar
    matpalmeiras7
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/05/2017

    Solução de Problema Empty Re: Solução de Problema

    Mensagem  matpalmeiras7 29/5/2017, 21:04

    perdão, achei que o VBA se aplicasse nesse caso do excel também.

    Conteúdo patrocinado


    Solução de Problema Empty Re: Solução de Problema

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 10:30