Moyenne de plusieurs cellules recopiées dans une autre feuille
Bonjour à tous,
Pour des besoins de traitement de données issues de capteurs, j'ai besoin de faire une moyenne de plusieurs résultats et les envoyer dans une nouvelle feuille pour création de graphiques.
Pour expliquer:
La colonne A contient la date/heure avec des intervalles de 5 minutes.
Les colonnes B D F H contiennent des données (liées à la colonne A) où la formule est également à appliquer.
J'aimerais faire la moyenne de 12 valeurs (par exemple pour avoir une donnée par heure) puis envoyer le résultat dans une nouvelle feuille.
Faire cela manuellement n'est pas compliqué mais avec des milliers de donnés ce n'est pas possible.
Merci pour votre aide les experts!
Bonne journée à tous
Bonjour,
Une piste mais tu as des valeurs de date non conforme à partir de la ligne 5287 !
Sub Test()
Dim Plage As Range
Dim I As Long
Dim J As Long
With Worksheets("GEX01_201804041551"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
J = 1
For I = 1 To Plage.Count Step 12
With Worksheets("Résultat exemple")
J = J + 1
.Cells(J, 1).Value = CDate(Plage(I).Value)
.Cells(J, 2).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 1).Address(0, 0) & ":" & Plage(I + 11).Offset(, 1).Address(0, 0) & ")"
.Cells(J, 4).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 3).Address(0, 0) & ":" & Plage(I + 11).Offset(, 3).Address(0, 0) & ")"
.Cells(J, 6).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 5).Address(0, 0) & ":" & Plage(I + 11).Offset(, 5).Address(0, 0) & ")"
.Cells(J, 8).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 7).Address(0, 0) & ":" & Plage(I + 11).Offset(, 7).Address(0, 0) & ")"
End With
Next I
End SubSuper merci pour ta réponse rapide.
Je vais voir pourquoi mes dates sont non-conformes au 1er avril (même excel fait des blagues lol).
Je vais adapter pour faire une inputbox demander avec combien de valeurs on veut faire les moyennes.
Bonjour,
Avec l'InputBox :
Sub Test()
Dim Plage As Range
Dim I As Long
Dim J As Long
Dim Pas As Integer
With Worksheets("GEX01_201804041551"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
J = 1
Pas = InputBox("Combien de valeurs pour la moyenne ?", "Pas d'avancement.", 12)
If Not IsNumeric(Pas) Then MsgBox "La valeur doit être numérique !": Exit Sub
For I = 1 To Plage.Count Step Pas
With Worksheets("Résultat exemple")
J = J + 1
.Cells(J, 1).Value = CDate(Plage(I).Value)
.Cells(J, 2).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 1).Address(0, 0) & ":" & Plage(I + Pas - 1).Offset(, 1).Address(0, 0) & ")"
.Cells(J, 4).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 3).Address(0, 0) & ":" & Plage(I + Pas - 1).Offset(, 3).Address(0, 0) & ")"
.Cells(J, 6).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 5).Address(0, 0) & ":" & Plage(I + Pas - 1).Offset(, 5).Address(0, 0) & ")"
.Cells(J, 8).Formula = "=Average(GEX01_201804041551!" & Plage(I).Offset(, 7).Address(0, 0) & ":" & Plage(I + Pas - 1).Offset(, 7).Address(0, 0) & ")"
End With
Next I
End Sub