Boucle dans boucle
Résolu
calypsane
Messages postés
3
Statut
Membre
-
calypsane Messages postés 3 Statut Membre -
calypsane Messages postés 3 Statut Membre -
Bonjour à tous,
Je souhaite créer une macro permettant d'ajouter des valeurs qui sont dans un même intervalle afin, par la suite, pouvoir créer un histogramme.
Voici un exemple de valeurs:
HU % surface
-956,6963087 0
-948,5 0,060643061
-940,25 0
-931,75 0
-923,5 0,060643061
-915,25 0
-906,75 0
-898,25 0,121286121
-889,75 0,060643061
-881,5 0,121286121
-873,25 0
-864,75 0
-856,25 0,060643061
-847,75 0
-839,5 0,121286121
-831,25 0,121286121
-822,75 0,060643061
et voici le code correspondant:
J'aimerai que mes boucles i et k s'incrémentent en même temps mais je ne sais pas comment...
Pouvez-vous m'aider?
Je souhaite créer une macro permettant d'ajouter des valeurs qui sont dans un même intervalle afin, par la suite, pouvoir créer un histogramme.
Voici un exemple de valeurs:
HU % surface
-956,6963087 0
-948,5 0,060643061
-940,25 0
-931,75 0
-923,5 0,060643061
-915,25 0
-906,75 0
-898,25 0,121286121
-889,75 0,060643061
-881,5 0,121286121
-873,25 0
-864,75 0
-856,25 0,060643061
-847,75 0
-839,5 0,121286121
-831,25 0,121286121
-822,75 0,060643061
et voici le code correspondant:
Sub MAR()
Dim i, n, j, k
Dim general(69)
Sheets("M").Select
For i = -1000 To 0 Step 20
For k = 0 To 69
For n = 3 To 170
If Range("A" & n) >= i And Range("A" & n) < i + 20 Then
general(k) = general(k) + Range("B" & n)
End If
Next n
Next k
Next i
Sheets("Global").Select
For j = 0 To 69
Range("B" & j + 4) = general(j)
Next j
End Sub
J'aimerai que mes boucles i et k s'incrémentent en même temps mais je ne sais pas comment...
Pouvez-vous m'aider?
A voir également:
- Boucle dans boucle
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
3 réponses
Bonjour,
la boucle For i = -1000 To 0 Step 20 fait 50 itérations
la boucle For k = 0 To 69 fait 70 itérations
il y a discordance, on ne peut pas incrémenter i et k simultanément:
si on prend i comme variable de contrôle, on incrémente k de 1 a chaque tour, la valeur maxi de k sera 49.
ou alors je n'ai pas compris la question?
A+
la boucle For i = -1000 To 0 Step 20 fait 50 itérations
la boucle For k = 0 To 69 fait 70 itérations
il y a discordance, on ne peut pas incrémenter i et k simultanément:
si on prend i comme variable de contrôle, on incrémente k de 1 a chaque tour, la valeur maxi de k sera 49.
ou alors je n'ai pas compris la question?
A+
Voilà comme j'ai compris le problème
Sub MAR()
Dim i, n, j, k
Dim general(69)
Sheets("M").Select
k=0 'initialisation de k
For i = -1000 To 0 Step 20
'incrémentation de k à chaque tour de la boucle i
'k varie de 0 à 49
k=k+1
For n = 3 To 170
If Range("A" & n) >= i And Range("A" & n) < i + 20 Then
general(k) = general(k) + Range("B" & n)
End If
Next n
Next i
Sheets("Global").Select
For j = 0 To 69
Range("B" & j + 4) = general(j)
Next j
End Sub