[VBA]aide sur des loop

drsmha Messages postés 2 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 6 février 2013 - 6 févr. 2013 à 00:32
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 6 févr. 2013 à 09:36
Voilà mon code:

Sub Essai99()

Dim x As Integer, y As Integer, L1 as Integer, C1 as Integer, L2 as Integer, C2 as Integer
y = 6
For x = 10 To 30 Step 5
Sheets("2013a").Cells(x, y) = "PJ"
Sheets("2013a").Cells(x + 1, y) = "CA"
Next x

L1 = 3
C1 = 4
L2 = 6
C2 = 10
Do Until L1 = 17

If Sheets("Temp").Cells(L1, C1).Value "AR" Then Sheets("2013a").Cells(L2 + 0, C2).Value "PJ"
If Sheets("Temp").Cells(L1, C1).Value "AR" Then Sheets("2013a").Cells(L2 + 1, C2).Value "RU"

L1 = L1 + 1
L2 = L2 + 5
Loop

End Sub

Le code fonctionne bien.
Mon problème : je dois le refaire 52 fois!
C'est-à-dire à la fin du Loop,
Je dois reprendre les valeurs initiales de y-L1-C1-L2-C2-Do Until avec les modifications suivantes:

rajouter 8 à y; donc y=y+8 (6;14;22;30.....)
rajouter 7 à L1; donc L1=L1+7 (3;10;17;24.....)
C1 n'est pas modifié = 4, c'est un constant (4;4;4;4.....)
L2 n'est pas modifié = 6, c'est un constant (6;6;6;6....)
rajouter 8 à C2; donc C2=C2+8 (10;18;26;34.....)
rajouter 7 à Do Until L1= (10;17;24;31...)

Les nouvelles valeurs de y-L1-C1-L2-C2-Do Until ... sont reinjectées au début et le Loop se fait,
pour générer une 2e série de résultats,
ainsi de suite,
jusqu'à ce que y atteint la valeur de 6+(52x8)= 422

Votre sera très appréciée.

ha61@hotmail.fr

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
6 févr. 2013 à 09:36
Bonjour,

Déjà.. pour ton prochain message merci d'utiliser les balises de code ( ça facilite la lecture)

Ensuite, vu que ce que nous indique, il suffit que tu mette ta boucle actuelle dans une autre boucle (qui fera l'incrementation de tes valeurs)

Sub Loop1()
Dim x As Integer, y As Integer, L1 as Integer, C1 as Integer, L2 as Integer, C2 as Integer 
y = 6
L1 = 3 
C1 = 4 
L2 = 6 
C2 = 10
MaxL1=17 ; valeur initiale pour ton DO LOOP

For B=1 to 52
  For x = 10 To 30 Step 5 
   Sheets("2013a").Cells(x, y) = "PJ" 
   Sheets("2013a").Cells(x + 1, y) = "CA" 
  Next x 

Do Until L1 = MaxL1


' Etc....

Loop

' Ici tu incrementes tes valeurs
y=y+8
L1=L1+7 
MaxL1=MaxL1+7

'etc..

next

End Sub



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Rejoignez-nous