En ce week end qui approche, j'ai encore de grande questions méthaphysiques à vous poser.
Je dois dans mon tableau, et à l'aide de VBA, réaliser la somme des valeurs contenues dans certaines cellules.
Le problème, c'est que je ne sais pas avant de lancer ma macro ou seront ces cellules.
En cours de macro, je rempli donc un tableau donnant les positions des résultats intermédiaires :
Code:
prix_intermediaire(i) = x
x étant une variable définie dans certaine de mes procédures.
Lorsque je clique sur mon bouton 'finish', je lance donc le code suivant:
Code:
cells(5,10).formula =''
for j = 1 tu Ubound(prix_intermediaire)
cells(5,10).formula ='=RC+ RC[(prix_intermediaire(j)-10)]'
next j
'...
Ce qui me donne mon code d'erreur préféré: le 1004, ou erreur d'éxécution,
Erreur définie par l'application ou par l'objet...
Je suppose que ca vient du fait que je fait appel à la cellulle 'mère' dans ma formule, mais je sais pas comment faire sinon.
Il y aurait pu avoir la solution cells(1,2).value = Cells(,).value + etc...
Mais ca ne peut pas marcher parceque le programme ne me génère que le corps des calcul et des choix, que donc g des #N/A partout et que ducoup, cette somme là ne marche pas du tout nom plus...
Lorsque j'exécute ma macro, je génère des résultats qui ne sont dans des colonnes différentes en fonction des choix que j'ai fais dans mon USF.
Afin de savoir ou sont placé ces résultat, j'enregistre dans un tableau leur numéro de colonne.
Ensuite, c'est là ou je bloque, je voudrais créer un code qui me permettrait de mettre dans une cellule la somme de tous les résultats précédents.
Comme les coordonnée des cellules à sommer sont dans un tableau, il faut que je créer une boucle (cf premier message du fil) avec un code du style
ou résultat(i) représente le numéro de colonne du iémé résultat intermédiaire.
Sauf que ca marche pas... [file name=departfonctionnel.zip size=24304]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/departfonctionnel.zip[/file]
Je n'ai pas réussi à aller au bout de ton USF car il faut entrer des valeurs que je ne connais pas. Ceci dit, j'ai l'impression que c'est la partie de code :
Code:
For temp = 1 To 2 * NbofProcess(i) + 1
Cells(2 * i + 4, decalage(i) + 1).Formula = '=Cells(2 * i + 4, decalage(i) + 1).Formula + RC[(finalprice(i,temp)-decalage-1)]'
Next temp
qui te pose problème (Procédure : Private Sub Cmdnext3_Click), non ?
Si c'est le cas, tu peux essayer de la transformer ainsi :
Code:
For temp = 1 To 2 * NbofProcess(i) + 1
If temp = 1 Then
Cells(2 * i + 4, decalage(i) + 1).FormulaR1C1 = '=RC[' & (finalprice(i, temp) - decalage - 1) & ']'
Else
Cells(2 * i + 4, decalage(i) + 1).FormulaR1C1 = Cells(2 * i + 4, decalage(i) + 1).FormulaR1C1 & '+ RC[' & (finalprice(i, temp) - decalage - 1) & ']'
End If
Next temp