Ir para conteúdo
Fórum Script Brasil

Mateus Menegatti

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre Mateus Menegatti

Mateus Menegatti's Achievements

0

Reputação

  1. 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 lin = lin + 1 Wend End Sub Function AvaliaRisco(Perfil As String, Linha As Integer) As Boolean Dim fundo As String Dim PerfilUsuario As String PerfilUsuario = Worksheets(Resultado).Cells(1, 1) fundo = Worksheets(Rentabilidade).Cells(Linha, 1) Linha = 2 Perfil = Worksheets(Rentabilidade).Cells(Linha, 2) While Not IsEmpty(Worksheets(Rentabilidade).Cells(Linha, 2)) 'rodar enquanto a coluna dos perfis não for vazia If Perfil = PerfilUsuario Then 'checa se o perfil do usuario é igual ao perfil do fundo AvaliaRisco = True End If Linha = Linha + 1 Wend End Function o código acima é o completo que fiz
  2. 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 IntegerFunçã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."
×
×
  • Criar Novo...