Notifications
Clear all

Criar função

7 Posts
1 Usuários
0 Reactions
2,079 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gostaria de saber se há como criar uma função onde eu possa colocar quantos números eu quiser e como ficaria ela. Eu fiz uma básica mas ela fica muito extensa já que tenho que adicionar todos os números. Aqui está a função:

TESTE = num1 * (num13 + num14 + num15 + num16 + num17 + num18) + num2 * (num13 + num14 + num15 + num16 + num17 + num18) + num3 * (num13 + num14 + num15 + num16 + num17 + num18) + num4 * (num13 + num14 + num15 + num16 + num17 + num18) + num5 * (num13 + num14 + num15 + num16 + num17 + num18) + num6 * (num13 + num14 + num15 + num16 + num17 + num18) + num7 * (num13 + num14 + num15 + num16 + num17 + num18) + num8 * (num13 + num14 + num15 + num16 + num17 + num18) + num9 * (num13 + num14 + num15 + num16 + num17 + num18) + num10 * (num13 + num14 + num15 + num16 + num17 + num18) + num11 * (num13 + num14 + num15 + num16 + num17 + num18) + num12 * (num13 + num14 + num15 + num16 + num17 + num18)

Agradeço quem puder ajudar.

 
Postado : 18/05/2010 6:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se tiver uma função que faça a mesma coisa também pode ser... Eu procurei mas não conegui achar

 
Postado : 18/05/2010 1:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

para que voce que usar essa função, dependendo do uso da função, os argumentos podem ser mais reduzidos

 
Postado : 18/05/2010 9:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu quero a função para o seguinte (vou demonstrar, porque não sei direito com explicar):

1*(1+2+3+4+5+6) + 2*(1+2+3+4+5+6) + 3*(1+2+3+4+5+6) + 4*(1+2+3+4+5+6)...

E assim em diante, é só pra facilitar minha vida para não ter que sair fazendo isso toda vez que for necessário :D .

 
Postado : 20/05/2010 5:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

segue rotina...

Option Explicit

Function GeraFuncaoSequencial(intNumero As Integer, intNumeroArgumentos As Integer)
    Dim sFunc As String, y As Integer, x As Integer, sNumArgs As String, sFormula As String
    For y = 1 To intNumero
        sNumArgs = ""
        For x = 1 To intNumeroArgumentos
            sNumArgs = sNumArgs & "+" & x
        Next
        sNumArgs = Mid(sNumArgs, 2)
        sFormula = sFormula & y & "*(" & sNumArgs & ") + "
    Next
    GeraFuncaoSequencial = Trim(Mid(Trim(sFormula), 1, Len(sFormula) - 2))
End Function
 
Postado : 29/05/2010 3:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Coloque essa função em uma celula e mesma retorna a sequencia da formula com base nos parametros passados.

Exemplo:
na celula A2, coloque a seguinte formula.

= GeraFuncaoSequencial(3;5)

Isso irá gerá a seguinte sequencia

1*(1+2+3+4+5) + 2*(1+2+3+4+5) + 3*(1+2+3+4+5)

 
Postado : 29/05/2010 3:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tá aparecendo exatamente como você disse só que eu quero que ele faça o cálculo, então pra isso seria necessário um igual antes do resultado que aparece.

 
Postado : 31/05/2010 5:21 am