Bonjour,
J'essaye de faire fonctionner un programme VBA (je m'y mets progressivement donc soyez indulgents...). J'ai en fait un classeur avec 2 feuilles, "Crédits CMB" dans laquelle j'ai un échéancier avec plusieurs dates sur une même lignes et "EURIBOR 3 mois" sur laquelle j'ai dans la colonne B, les valeurs du taux EURIBOR et en A, les dates correspondantes à ces valeurs.
Je recherche à calculer, pour chaque date présente dans la feuille "Crédits CMB", la moyenne du taux EURIBOR 3 mois précédent cette date.
Voici le code que j'ai "tenté" de mettre en place:
Dim i As Long
Dim longueur As Long
Dim cellules As Range
Dim plage As Range
Dim Quand As Date
Dim depart As Date
Sheets("Crédits CMB").Activate
Range("W12").Select 'Je pars de la cellule contenant la première date que je considère
Set cellules = Range(Selection, Selection.End(xlToRight))
longueur = cellules.Count 'Je mets en place un compteur qui arrêtera le calcul lorsqu'il n'y aura plus de dates à considérer
For i = 1 To longueur
depart = Sheets("Crédits CMB").ActiveCell.Value 'je définis la variable depart qui est le point de départ pour le calcul de l'EURIBOR 3 mois
If ActiveCell.Offset(0, -1) = "" Then
Quand = Sheets("Crédits CMB").ActiveCell.Value - 91
Else: Quand = Worksheets("Crédits CMB").ActiveCell.Offset(0, -1).Value 'quand est la variable d'arrivée me permettant de borner le calcul de l'EURIBOR 3 mois
End If
Sheets("EURIBOR 3 mois").Activate
Range(Cells.Find(what:=depart, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False), Cells.Find(what:=Quand, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)).Select 'Je sélectionne la "période" sur laquelle je souhaite calculer l'EURIBOR 3 mois
Set plage = Selection.Offset(0, 1) 'Je définis la plage de valeur qui me permettra de calculer la moyenne de l'EURIBOR en décalant la sélection pour passer des dates aux valeurs associées
Sheets("Crédits CMB").Activate
ActiveCell.Offset(1, 0).Select 'Je sélectionne la cellule où je souhaite calculer ma moyenne dans la feuille"Crédits CMB"
ActiveCell.Formula = "=moyenne(plage)"
ActiveCell.Offset(-1, 1).Select
Next i
End Sub
Voilà, j'espère avoir été assez clair, n'hésitez pas à me demander d'éclaircir si besoin. Mon code est plein d'erreurs de syntaxes mais n'ayant pas d'expérience, je ne vois rien...
Merci pour votre aide
Configuration: Windows XP Internet Explorer 7.0
excel 2003