Bonjour à tous et à toutes,

c'est mon premier post sur le forum donc j’espère expliquer mon problème le plus clairement possible.

Version Excel : Microsoft Office 365 version 1708

Je suis actuellement en train de créer une boucle en VBA permettant de calculer des performances hebdomadaires.

En résumé ma feuille de calcul est organisé de la manière suivante :

En Colonne A => j'ai des dates
En Colonne B => j'ai le numéro de jours correspondant à la date en face => fonction Excel :=JOURSEM(A2))

Exemple:

Cellule A2 = 14/02/2014
Cellule B2 = 6 ( numéro de jours semaine correspondant à la date en A1
Cellule C2 = donnée numérique

et ceci jusqu'à la ligne 100

je souhaiterai réaliser une boucle me permettant à chaque fois que je tombe sur la valeur 6 dans la colonne B de réaliser un calcul par rapport aux données en colonne C

J'ai réussi à écrire la macro suivante :

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
Public Sub test_1()
 
Dim DernLigne As Long
Dim i As Integer
 
With Worksheets("Test")
 
DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
 
End With
 
For i = 4 To DernLigne
 
 
If Cells(i, 2) = 6 Then 
 
Cells(i, 5) = Cells(i, 3) / Cells(i, 3).Offset(-5, 0) - 1
 
End If
 
Next i
 
End Sub
Problème rencontré en rouge : je souhaiterai que mon Cells(i, 3).Offset(-5, 0) ne soit pas fixe mais qu'il aille chercher la ligne qui corresponds au précédent 6ème jours de la semaine

Auriez vous une idée pour aller chercher la valeur en colonne C du précédent 6ème jours ( indiqué en colonne B) ?

j'éspère être clair dans mon explication.

Je vous remercie par avance de votre aide.