Bonjour à tous et à toutes,

Débutant en VBA je tente de réaliser une double boucle.
En effet au départ j’ai construis la macroC1 avec la variable « C » qui me copie les résultats en I et J sur laquelle je veux inclure une 2° boucle (exemple variable D en lieu et place de R3C82) qui devrait me copier les résultats en K et L puis en M et N pour une évolution de D de 25 à 27.
Après plusieurs essais, j’arrive à définir la variable D, lui faire faire la double boucle, par contre je viens systématiquement écraser les résultats précédents car je ne connais pas l’instruction permettant de copier sur les colonnes voisines. C’est pour cela que j’ai recours à plusieurs macros pour compenser mes lacunes. Si quelqu’un pouvait m’orienter ce serait le TOP.

Merci par avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub MacroC1()
Dim C&
Dim Deb As Currency
 Application.ScreenUpdating = False
Deb = Timer
With Sheets("C-Test")
 
     For C = 1 To 58
 
     Range("CF26").FormulaR1C1 = "=IF(AND(RC[-3]>" & C & ",RC[-3]<R3C82,RC[-65]=1),1,IF(AND(RC[-3]>" & C & ",RC[-3]<R3C82,RC[-65]=0),0,2))"
     Range("CF26").AutoFill Destination:=Range("CF26:CF1657"), Type:=xlFillDefault
 
        .Range("CF1").FormulaR1C1 = "=100*R4C84/(R3C84+R4C84)"
        .Range("CI1").Offset(C, 0).Value = .Range("CF1").Value
 
            .Range("CF2").FormulaR1C1 = "=(R3C84+R4C84)"
            .Range("CJ1").Offset(C, 0).Value = .Range("CF2").Value
 
     Next C
End With
MacroC2
  ActiveWorkbook.Save
  Range("CD1") = (Timer - Deb) & " sec"
   Application.ScreenUpdating = True
End Sub
Sub MacroC2()
Dim C&
Dim Deb As Currency
 
With Sheets("C-Test")
 
     For C = 1 To 58
 
     Range("CF26").FormulaR1C1 = "=IF(AND(RC[-3]>" & C & ",RC[-3]<R3C82,RC[-65]=1),1,IF(AND(RC[-3]>" & C & ",RC[-3]<R3C82,RC[-65]=0),0,2))"
     Range("CF26").AutoFill Destination:=Range("CF26:CF1657"), Type:=xlFillDefault
 
        .Range("CF1").FormulaR1C1 = "=100*R4C84/(R3C84+R4C84)"
        .Range("CK1").Offset(C, 0).Value = .Range("CF1").Value
 
            .Range("CF2").FormulaR1C1 = "=(R3C84+R4C84)"
            .Range("CL1").Offset(C, 0).Value = .Range("CF2").Value
 
     Next C
End With
 
End Sub