Fonction de VBA dans une cellule Excel
Bonjour à tous,
Débutant en VBA j'ai quelques problèmes pour passer du code VBA à une formule dans les cellules d'excel.
Voici mon code de basse qui fonctionne :
For cas = 0 To derniere_ligne - 11
For ann = 0 To tab_const_bas(2) - 1
If ann + 1 = tab_donne(cas, 8) Then
If tab_donne(cas, 2) = "Income" Then
Cells(cas + 2, ann + 2) = tab_donne(cas, 10) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
Else
Cells(cas + 2, ann + 2) = -tab_donne(cas, 10) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
End If
ElseIf ann + 1 >= tab_donne(cas, 8) And ann + 1 <= tab_donne(cas, 9) Then
Cells(cas + 2, ann + 2) = Cells(cas + 2, ann + 1) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
Else
Cells(cas + 2, ann + 2) = 0
End If
Next
NextAvec tab_donne comme tableau.
Ce que j'aimerais c'est à la place d'avoir le résultat dû calcule dans les différentes cellules du fichier excel, et d'avoir l'équation entière de telle sorte à pouvoir recalculer et voir les variations du rand.
J'ai essayé avec l'extension .FormulaR1C1 sur Cells(....), mais cela ne me donne que des erreurs...
Merci d'avance de votre aide et bonne journée
bonjour
vous voulez une chose comme ca :
For cas = 0 To derniere_ligne - 11
For ann = 0 To tab_const_bas(2) - 1
If ann + 1 = tab_donne(cas, 8) Then
If tab_donne(cas, 2) = "Income" Then
Cells(cas + 2, ann + 2) = (-1) * tab_donne(cas, 10) & " * " & "(1 + " & WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)) & ") = " _
& tab_donne(cas, 10) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
Else
Cells(cas + 2, ann + 2) = (-1) * tab_donne(cas, 10) & " * " & "(1 + " & WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)) & ") = " _
& (-1) * tab_donne(cas, 10) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
End If
ElseIf ann + 1 >= tab_donne(cas, 8) And ann + 1 <= tab_donne(cas, 9) Then
Cells(cas + 2, ann + 2) = Cells(cas + 2, ann + 1) & " * " & "(1 + " & WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)) & ") = " _
& Cells(cas + 2, ann + 1) * (1 + WorksheetFunction.Norm_Inv(Rnd, tab_donne(cas, 5), tab_donne(cas, 6)))
Else
Cells(cas + 2, ann + 2) = 0
End If
Next
Nextou autre chose ( comportement de fonction exel par exemple ?!)
Bonjour merci beaucoup pour votre réponse.
Non malheureusement pas...
Ce que je cherche à faire est quelque chose ressemblant à cela :
Cells(cas + 2, ann + 2).FormulaR1C1 = "= " & tab_donne(cas, 10) & " & " (1+NORM.INV(RAND(); " & " & tab_donne(cas, 5) & " & ";" & " & tab_donne(cas, 6) & " & "))" "Mais cela me dit que j'ai une Compile error et que je n'ai pas la fin du statement
Je ne trouve pas comment écrire correctement cette commande pour que j'ai à la fin de l'exécution du code, par exemple :
= 120 *(1+ NORM.INV(RAND();0.2;0.6))Merci d'avance de votre aide
BONJOUR
essayer avec ca :
Sub test()
Range("A1").FormulaR1C1Local = "=1+2"
End Sub