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
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