compilation de formules

hidozo

XLDnaute Occasionnel
Bonjour,

dans mon projet, je dois réaliser une compilation de données de la manière suivante :
pour chaque donnée de la cellule U2 à la cellule U49, je dois effectuer des calculs par rapport à un ensemble de données issues d'analyses vidéo où je coche des indicateurs (issues des cellules de U2 à U49.

le code que nous avons réalisé est le suivant :
Range("G3").Select
Selection.AutoFilter 'mise en place filtre
Selection.AutoFilter Field:=7, Criteria1:=Worksheets("Feuil1").Range("u2").Value 'choix du critère (ici celui en U2)
Range("J2").Activate
ActiveCell.Formula = Application.Subtotal(3, Worksheets("Feuil1").Range("G3:G3000"))
If Range("J2").Value = 0 Then Range("J2").Value = "NR" Else Range("J2").Value = Range("J2").Value
Range("k2").Activate
ActiveCell.Formula = Application.Subtotal(5, Worksheets("Feuil1").Range("F3:F3000"))
If Range("J2").Value = "NR" Then Range("k2").Value = "NR" Else Range("k2").Value = Range("k2").Value
Range("l2").Activate
ActiveCell.Formula = Application.Subtotal(4, Worksheets("Feuil1").Range("F3:F3000"))
If Range("J2").Value = "NR" Then Range("l2").Value = "NR" Else Range("l2").Value = Range("l2").Value
Range("m2").Activate
ActiveCell.Formula = Application.Subtotal(1, Worksheets("Feuil1").Range("F3:F3000"))
If Range("L2").Value = "NR" Then Range("m2").Value = "NR" Else Range("m2").Value = Range("M2").Value
Range("o2").Activate
ActiveCell.Formula = "=((RC[-3]-RC[-4])*100)/RC[-2]"
If Range("J2").Value = "NR" Then Range("o2").Value = "NR" Else Range("o2").Value = Range("o2").Value
Range("S2").Activate
ActiveCell.Formula = Application.Subtotal(9, Worksheets("Feuil1").Range("f3:f3000"))
If Range("J2").Value = "NR" Then Range("S2").Value = "NR" Else Range("S2").Value = Range("S2").Value

If Range("J2").Value = "NR" Then Range("r2").Value = "NR" Else Range("r2").Value = Range("S2").Value * 100 / Range("F2").Value
If Range("J2").Value = "NR" Then Range("i2").Value = "NR" Else Range("i2").Value = Range("J2").Value * 100 / Range("H2").Value

Et je répète cette opération de la ligne U2 à U 49.
cela me prend de la place et je voudrais savoir comment faire pour compiler ce code pour mes 48 lignes en u seul bout de code.

Je pensais utiliser 2 for then next, mais cela n'a pas fonctionné car il m'a mis le même résultats dans toutes mes cellules de destinations.

Est-ce que quelqu'un a une idée ?

Cordialement

Hidozo
 

Odesta

XLDnaute Impliqué
Re : compilation de formules

Bonjour

Personnelement, j'utilise Cells( ) à la place de range.

Car on y travail en valeur d'ordonnée et d'absolue, et non en référence de cellule.

Ce qui donnerais pour la ligne :
Range("J2").Activate
ActiveCell.Formula = Application.Subtotal(3, Worksheets("Feuil1").Range("G3:G3000"))

Cells(2,10).Formula = Application.Subtotal(3, Worksheets("Feuil1").Range(cells(3,7),cells(3000,7)))

Et la, d'un coup, on vois qu'un for i = 1 to x / next permet de remplace aisement les 2 et les 3 par des i+1 et des i+2 !!
Si vous devez travailler une ligne sur deux, for i = 1 to x step 2 / next


Essayez de remplacer tout ca et dites nous si cela fonctionne

Cordialement
Olivier

PS : on peut travailler aussi avec les Ranges ("A"& i ) mais je ne trouve pas ca jolie
 

hidozo

XLDnaute Occasionnel
Re : compilation de formules

Re bonjour,

J'ai essayé de modifier la formule, mais, pffffffffffffffffff

je joints un exemple

cliquer sur le bouton.

remarques :

il me fait des calcules sur ligne 1 alors qu'il ne devrait pas y en avoir. En fait il me fait les bons calcules mais sur l'ensemble des données.

les valeurs en F2 et H2 sont corrects

Et j'ai 4 données (1, 2, 3 et 4) et les calculs ne semblent fonctionner que pour 3 d'entre elles.

De plus la logique que si cellule=0, cela devient "NR" ne fonctionne pas.

Cordialement

Hidozo
 

Pièces jointes

  • Classeur1.xls
    41.5 KB · Affichages: 53
  • Classeur1.xls
    41.5 KB · Affichages: 51
  • Classeur1.xls
    41.5 KB · Affichages: 57

hidozo

XLDnaute Occasionnel
Re : compilation de formules

re bonjour,

Ci-joint la solution trouvée par mon collègue.

Cordoalement

Hidozo:D
 

Pièces jointes

  • Classeur1.xls
    38 KB · Affichages: 58
  • Classeur1.xls
    38 KB · Affichages: 52
  • Classeur1.xls
    38 KB · Affichages: 54

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet