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 :
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 :
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.
Partager