Rechercher : dans
Par :

Problème de syntaxe dans une boucle for next

Keufi, le 7 jui 2009 à 16:07:39 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Problème de syntaxe dans une boucle for next » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Perl - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...