MOYENNE ac cellules variables - VBA excel

Fermé
Dino - 25 juin 2012 à 17:24
 Dino - 26 juin 2012 à 09:26
Bonjour,

Je cherche à affecter à une cellule particulière (Cells(fin_prod + 2, col)) la fonction MOYENNE qui prend comme arguments des valeurs situées dans des cellules variables. Le problème que je rencontre est je pense un pb de synthaxe, car je n'arrive pas à executer le code, un message d'erreur apparait. Voici la partie de mon code en rapport avec l'erreur:

Sub moyenne()

Dim col As Integer
Dim fin_org As Integer
Dim fin_com As Integer
Dim fin_qua As Integer
Dim fin_fina As Integer
Dim fin_prod As Integer

Cells(fin_prod + 2, col).Formula = "=AVERAGE(" & Cells(fin_org + 1, col).Adress & ":" & Cells(fin_com + 1, col).Adress & ":" & Cells(fin_qua + 1, col).Adress & ":" & Cells(fin_fina + 1, col).Adress & ":" & Cells(fin_prod + 1, col).Adress & ")"

End Sub

col est le numéro de la colonne qui est préalablement déterminé à l'aide d'une boucle Do While. fin_org, fin_com,fin_qua,fin_fina,fin_prod sont les numéros des lignes des cellules à sélectionner également définies avec un test préalable.

Pour moi je suis obligé d'utiliser Cells car je connais le n° de la ligne et de la colonne sous forme numérique et non alphanumérique (type A5)...Est-ce que je me trompe?

Merci d'avance pour votre aide!

Dino
A voir également:

1 réponse

ccm81 Messages postés 10860 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 mai 2024 2 406
Modifié par ccm81 le 25/06/2012 à 18:18
bonjour

deux pb (au moins)
1. Address prend 2 "d"
2. il y a beaucoup de ":" dans ta formule
si tu veux la moyenne des 5 cellules, remplaces les par des ";" sinon définis proprement tes plages

RQ1. séparer le calcul de la formule de son affectation (permet de debugger)
RQ2. FormulaLocal permet d'utiliser le français

f = "=MOYENNE(" & Cells(fin_org + 1, col).Address & ";" & Cells(fin_com + 1, col).Address & ";" & Cells(fin_qua + 1, col).Address & ";" & Cells(fin_fina + 1, col).Address & ";" & Cells(fin_prod + 1, col).Address & ")"    
Cells(fin_prod + 2, col).FormulaLocal = f

bonne suite
0
Merci bien "ccm81", ça marche parfaitement!
Effectivement, il manquait bien un "d" à Adress! J'ai également remplacé les ":" par ";"

Bonne continuation
0