Boucle For Imbriquées

Y compris Power BI, Power Query et toute autre question en lien avec Excel
N
Nane18
Membre habitué
Membre habitué
Messages : 69
Inscrit le : 5 juillet 2019
Version d'Excel : 2013

Message par Nane18 » 11 juillet 2019, 15:57

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
Calcul volatilité Indice test.xlsm
(756.88 Kio) Téléchargé 2 fois
m
m3ellem1
Membre impliqué
Membre impliqué
Messages : 1'136
Appréciations reçues : 96
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 11 juillet 2019, 16:18

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,"""")"
w
whereisbryan
Membre habitué
Membre habitué
Messages : 146
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par whereisbryan » 11 juillet 2019, 16:21

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é
N
Nane18
Membre habitué
Membre habitué
Messages : 69
Inscrit le : 5 juillet 2019
Version d'Excel : 2013

Message par Nane18 » 11 juillet 2019, 16:25

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é :mrgreen:

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.
N
Nane18
Membre habitué
Membre habitué
Messages : 69
Inscrit le : 5 juillet 2019
Version d'Excel : 2013

Message par Nane18 » 11 juillet 2019, 16:32

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 :lole:
w
whereisbryan
Membre habitué
Membre habitué
Messages : 146
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par whereisbryan » 11 juillet 2019, 16:58

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
N
Nane18
Membre habitué
Membre habitué
Messages : 69
Inscrit le : 5 juillet 2019
Version d'Excel : 2013

Message par Nane18 » 11 juillet 2019, 17:34

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 :lole: 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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Boucle conditions imbriquées
    par amayas » 30 octobre 2019, 10:51 » dans Excel - VBA
    2 Réponses
    59 Vues
    Dernier message par amayas
    30 octobre 2019, 17:05
  • boucle imbriquées et doublons
    par Julienj » 21 février 2014, 06:41 » dans Excel - VBA
    3 Réponses
    114 Vues
    Dernier message par frangy
    21 février 2014, 11:17
  • SI(ET) imbriquées
    par Oliv34 » 25 février 2019, 16:54 » dans Excel - VBA
    13 Réponses
    90 Vues
    Dernier message par Oliv34
    25 février 2019, 17:47
  • fonctions imbriquées
    par ricouvbx » 6 octobre 2015, 22:36 » dans Excel - VBA
    4 Réponses
    282 Vues
    Dernier message par ricouvbx
    7 octobre 2015, 23:04
  • Trois Si imbriquées
    par amgue » 5 août 2015, 23:28 » dans Excel - VBA
    8 Réponses
    243 Vues
    Dernier message par mbbp
    7 août 2015, 22:34
  • Formule si imbriquées
    par Jason » 17 juin 2014, 15:19 » dans Excel - VBA
    2 Réponses
    186 Vues
    Dernier message par Amadéus
    17 juin 2014, 16:05