Repérage de donnée par VBA

Fermé
tetro14 Messages postés 8 Date d'inscription lundi 8 août 2016 Statut Membre Dernière intervention 15 août 2016 - Modifié par pijaku le 10/08/2016 à 08:01
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 9 août 2016 à 22:10
Bonjour, je cherche a repérer une ligne a l'aide de VBA. En faite, dans un colonne (D), j'ai un liste de prix et dans la colonne (C) j'ai un liste de date classer en ordre. J'ai besoin de faire un calcul de rendement de 3 ans( (PrixT-PrixT-1)/PrixT-1) . J'aimerai dire a excel voici ma date (EX:09/08/16) il me faudrais la ligne ou cellule de (09/08/2013). Voici le code que j'ai composer :
Sub rend3()

Dim r As Integer
Dim c As Integer
Dim rr As Integer
Dim cc As Integer
Application.ScreenUpdating = False

c = 4
cc = 4
Sheets("hist").Select
Do Until Sheets("hist").Cells(4, c) = ""
r = 5
rr = 7
    Do Until Sheets("hist").Cells(r + 1095, c) = ""
        Sheets("rendement (3 ans)").Cells(rr, cc) = ((Sheets("hist").Cells(r, c) - Sheets("hist").Cells(r + 1095, c)) / Sheets("hist").Cells(r + 1095, c))
        rr = rr + 1
    r = r + 1
    Loop
cc = cc + 1
c = c + 1
Loop
Application.ScreenUpdating = True
End Sub


Il fonctionne déjà mais au lieu de lui dire va voir 1095 cellules plus bas j'aimerai qu'il trouve la date (puisqu'il y a les années de 366 jours qui me poserons problème)

Merci grandement d'avance

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
9 août 2016 à 22:10
Bonjour,

Pour éviter d'utiliser 1095 (365*3) tu peux trouver la différence ainsi
delta = DateAdd("yyyy", 3, [A1]) - [A1]

avec ta date de départ en A1 à adapter.
0