Bonjour à tous,
Étant débutant sur le sujet, dans le cadre de mon apprentissage, j'effectue un fichier de suivi pour un client.
Pour cela j'utilise l'outil VBA pour le développement de cette outil.
Je bloque sur une fonction que je crée qui permet de quantifier le nombre de prestations réalisé entre le 1 au 7 du mois concerné, puis du 8 au 14, ainsi de suite. J'essaye de faire en sorte que la fonction s'utilise pour tout les mois, et toutes les années qui suivent.
Pour l'instant mon fichier excel contient 3 onglets:
-L'onglet "paramétrage" qui sert d'interface pour l'utilisateur.
-L'onglet "RapportSuivi" contient toutes les données à traiter. Il s'agit d'une liste de prestations.
-L'onglet "Suivi des commandes" permet de quantifier le nombre de commande par période, Par mois.
Ci joint le fichier excel. INDEX_TDB_2017.xlsm
Je souhaite donc remplir:
-les cases de B4 à B8 pour le mois de janvier.
-les cases de C4 à C8 pour le mois de février.
Ainsi dessuite, sachant que ce programme est censé fonctionner pour plusieurs année.
J'avais déjà créer une macro pour l'année 2016 mais j'aimerai en créer une nouvelle qui fonctionne peut importe l'année... C'est pourquoi voici mon code pour l'instant pour le mois de janvier pour la période T1 cellule (B4)
Voici un essai pour la période du 1 au 7 (T
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
49
50
51
52
53
54
55
56
57
58 Sub activeDate() ' TEST 'T1 Worksheets("RAPPORTSUIVI").Activate Dim cpt As Double Dim jetons As String Dim DatT1Deb As Date Dim DatT1Fin As Date DDEB = Worksheets("PARAMETRAGE").Range("E13") DFIN = Worksheets("PARAMETRAGE").Range("E14") DatT1Deb = 1 DatT1Fin = 7 Worksheets("RAPPORTSUIVI").Activate Range("E2").Select Do While Not (IsEmpty(ActiveCell)) li = ActiveCell.Row If Month(Worksheets("PARAMETRAGE").Range("E14")) = "1" Then 'Si le mois est égale à Janvier alors on applique les options de janvier 'MOIS JANVIER 'If Day(Range(Cells(li, 8))) >= "01" And Day(Range(Cells(li, 8))) <= "07" Then If ActiveCell.Value = "Réalisation" And Cells(li, 25).Value <> "Annulée" And CDate(Cells(li, 8).Value) >= CSng(Day(DatT1Deb)) And CDate(Cells(li, 8).Value) <= CSng(Day(DatT1Fin)) Then 'tri en fonction des paramètres jetons = Cells(li, 21).Value cpt = cpt + jetons 'compteur de jetons End If ' changer la position d'activecell Selection.Offset(1, 0).Activate Else End If Loop ' afficher le résultat du compteur après la boucle Sheets("PARAMETRAGE").Select MsgBox ("Mise à jour du mois de Janvier") Range("H13").FormulaR1C1 = "OK" Worksheets("SUIVI DES COMMANDES").Range("B4") = cpt ' on place le nombre de jetons dans la cellule B4 End Sub
Merci beaucoup d'avance pour votre aide. J'ai beaucoup de mal avec la gestion des dates.
Partager