Boucle For Imbriquées

Bonjour,

Vous trouverez en piece jointe mon fichier sur lequel je travaille. J'ai en fait un fichier ou je cherche a calculer desecart de prix récuperer sur bloomberg en rapport avec les indices boursiers. Voici le code

Sub Cop_coll() Sheets("Composants").Select Range("C8:C256").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Datas").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _ False, transpose:=True Range("A2").Select Sheets("Composants").Select Range("C8").Select Application.CutCopyMode = False End Sub Sub RecupData() ' ' Recup datas ' Var2 = (Cells(2, Columns.Count).End(xlToLeft).Column) y = 0 Z = 0 'y variable pour décallage de la formule de 5 'z variable pour que la prise en compte du ticker soit de 1 a 1 For x = 1 To Var2 Sheets("Datas").Range(Sheets("Datas").Cells(3, 1), Sheets("Datas").Cells(3, 1)).Offset(0, y).FormulaR1C1 = "=BDH(R[-1]C[" & Z & "],R1C1:R1C3,R1C7,R1C10)" y = y + 5 Z = Z - 4 Next x End Sub Sub Average() 'Calcul volatilité intraday Var = (Cells(2, Columns.Count).End(xlToLeft).Column * 6) + 1 Var2 = Sheets("Datas").Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Count y = 0 Z = 0 For x = 1 To Var Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(0, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")" For i = 1 To Var2 Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(Z, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")" Z = Z + 1 Next i y = y + 5 Next x End Sub

Concernant la dernière partie avec les boucles imbriquées, pourriez vous me dire pourquoi ma boucle For i=1 to Var2 fonctionne pour la première colonne que je souhaite remplir avec cette boucle et pas les autres ? Merci

Salut Nane18, slt le Forum,

Tout simplement parceque le „i“ que t‘incrementes manque dans ta formule

Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(Z, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"

Hello

alors désolé mais là je suis bloqué sur mon excel du coup je ne peux pas ouvrir ton fichier pour le moment

en revanche je n ecrirai pas cela de cette facon

For i = 1 To Var2
Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(Z, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"

Z = Z + 1
Next i
For i = 1 to var2
    for = 1 to var2?   ' à voir selon le nombre de repetition possible
        sheets("Datas").cells(i,Z).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"
    next
Next

Test cela un peu dans le genre et je te reviens quand mon excel sera débloqué

Bonjour m3ellem1, bonjour whereisbryan,

Concernant l'incrémentation du i, si tu regarde ma première boucle, je n'ai pas non plus incrémenté x et ma boucle fonctionne ... Je ne sais donc pas comment l'incrémenté

Et concernant la deuxième solution j'essai de suite et je te reviens mais je pensais être quasiment obligé d'imbriquées les deux boucles ... je test et je te fais un retour.

Merci de votre aide en tout cas.

Ton code ne fonctionne pas, je pense qu'il en manque des partie car même a la lecture je ne vois pas deux variable pour les deux boucles ... Je te laisse regardé ça. Merci

bon je comprends pas tout dans ta facon d'ecrire mais j ai fait un truc qui fonctionne

Attention à la variable x je ne l ai pas changé parce que je n ai pas compris ton code entierement

Sub Average()

'Calcul volatilité intraday

Var = (Cells(2, Columns.Count).End(xlToLeft).Column * 6) + 1
Var2 = Sheets("Datas").Range("A3").End(xlDown).Row

y = 5
Z = 0

 For x = 1 To Var

        Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(0, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"

                For i = 1 To Var2
                Sheets("Datas").Cells(i, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"

                Z = Z + 1
                Next i

        y = y + 5

        Next x

End Sub

Merci de votre aide j'ai trouvé une solution grace a vous. Effectivement mon code n'est pas très claire je suis débutant En tout cas merci a vous

Sub Average() 'Calcul volatilité intraday Var = (Cells(2, Columns.Count).End(xlToLeft).Column * 6) Var2 = Sheets("Datas").Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Count y = 0 Z = 0 For x = 1 To Var Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(0, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")" For i = 1 To Var2 Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(i, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")" Next i y = y + 5 Next x End Sub

Rechercher des sujets similaires à "boucle imbriquees"