Bonjour,

Je viens vers vous afin d'obtenir de l'aide concernant la réalisation d'un code VBA, sachant que je suis encore dans la cour des petits concernant la programmation ^^.

L'objectif de ce code est de réaliser une moyenne de données mais de manière pratique et "intelligente"

Les données à traiter sont des mesures réalisées toutes les heures chaque jours. Actuellement je réalise une moyenne de ces données en sélectionnant l'ensemble et en répétant la méthode pour chaque jour. Le soucis est que cette méthode peut s’avérer longue lorsque j'ai plusieurs mois à traiter et de plus ceci crée un écart entre mes cellules où s'affichent mes résultats.


Voici une illustration de ce que je fais pour arriver à mes fins :

Nom : Exemple.jpg
Affichages : 509
Taille : 216,8 Ko

J'aimerais donc réaliser une macro qui fasse cette tache pour gagner un temps considérable ^^ et passer directement de mon tableau de données brutes à mon tableau compacté avec mes valeurs moyennes dedans comme montré ci dessous :

Nom : Exemple2.jpg
Affichages : 462
Taille : 129,0 Ko

J'ai donc commencé un code qui me permet d'annoncer de quand à quand je veux réaliser mes calculs de valeurs moyenne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
Sub test()
 
Dim CellMyDate As Range
Dim CellMyDate2 As Range
 
'-----------------Varaibles pour conversion de date---------------
Dim an1 As Integer
Dim mois1 As Integer
Dim jour1 As Integer
Dim MyDate As Date
 
Dim an2 As Integer
Dim mois2 As Integer
Dim jour2 As Integer
Dim MyDate2 As Date
'-----------------------------------------------------------------
 
UserForm1.Show 'Affichage de la userform
 
'----------------------------Conversion Date début ---------------
an1 = UserForm1.TextBox6.Value
mois1 = UserForm1.TextBox4.Value
jour1 = UserForm1.TextBox1.Value
 
MyDate = DateSerial(an1, mois1, jour1)
 
fichier = Format(MyDate, "dd/mm/yyyy")
'-----------------------------------------------------------------
 
'----------------------------Conversion Date fin -----------------
an2 = UserForm1.TextBox5.Value
mois2 = UserForm1.TextBox3.Value
jour2 = UserForm1.TextBox2.Value
 
MyDate2 = DateSerial(an2, mois2, jour2)
 
fichier3 = Format(MyDate2, "dd/mm/yyyy")
'-----------------------------------------------------------------
MsgBox (fichier)
 
Set CellMyDate = Range("A1:A1000").Find(fichier, Range("A1"))
Set CellMyDate2 = Range("A1:A1000").Find(fichier2, Range("A1"))
 
MsgBox (CellMyDate.Address & "- " & " -" & CellMyDate2.Address)
 
 
End Sub

Sauf que comme vous pourrez le voir il reste encore une petite partie de boulot... Je pensais utiliser les adresses de cellules dans une boucle mais je ne vois pas du tout comment le faire (d'autant que le calcul doit être fait d'une date de début à une date de fin et chaque jours entre ces deux limites)
(Ex : Si j'annonce une date de début "01/01/2018 et une date de fin 06/01/2018" le calcul devra être fait pour le 01/01/2018 ,02/01/2018 ,03/01/2018 ,04/01/2018 ,05/01/2018 ,06/01/2018 et rangé dans le tableau compacté)

J’espère avoir été clair concernant mon besoin et vous remercie beaucoup par avance de votre aide

Bonne journée,
Alex.