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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| Sub MacroTestxxxyyy()
Dim heure As Long, minute As Long, seconde As Long
Dim Deb As Currency
Deb = Timer
Application.ScreenUpdating = False
Range("U1:AE1000").ClearContents
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim K As Double
Dim L As Double
VarO = Split("* - + /")
VarP = Split("* - + /")
VarQ = Split("< >")
VarR = Split("* - + /")
VarS = Split("* - + /")
For kO = 0 To 3
For kP = 0 To 3
For kQ = 0 To 1
For kR = 0 To 3
For kS = 0 To 3
For A = -15 To -5
For B = (A + 1) To -4
For C = (B + 1) To -3
For D = (C + 1) To -2
For K = 0.5 To 3 Step 0.5
For L = 0.5 To 3 Step 0.5
Range("V5").Value = K
Range("V6").Value = L
Range("U1") = A
Range("U2") = B
Range("U3") = C
Range("U4") = D
Range("U5") = VarO
Range("U6") = VarP
Range("U7") = VarQ
Range("U8") = VarR
Range("U9") = VarS
' formule Excel en Q1
Range("Q1").FormulaR1C1 = "=IF(AND(R5C22" & VarO(kO) & "(RC[" & A & "]" & VarP(kP) & "RC[" & B & "])" & VarQ(kQ) & "R6C22" & VarR(kR) & "(RC[" & C & "]" & VarS(kS) & "RC[" & D & "]),RC[-16]=1),1,IF(AND(R5C22" & VarO(kO) & "(RC[" & A & "]" & VarP(kP) & "RC[" & B & "])" & VarQ(kQ) & "R6C22" & VarR(kR) & "(RC[" & C & "]" & VarS(kS) & "RC[" & D & "]),RC[-16]=0),2,""""))"
Range("Q1").AutoFill Destination:=Range("Q1:Q6300"), Type:=xlFillDefault
Range("V2").Formula = "=CountIf(Q1:Q6300,1)"
Range("V3").Formula = "=CountIf(Q1:Q6300,2)"
Range("V4").Formula = "=(V3+V2)"
Range("V1").Formula = "=IF((V3+V2)=0,1,(100*V2)/(V3+V2))"
'Evaluation et copie des resultats
If Range("V1").Value = Range("AB1").Value And Range("V4").Value > 200 Then
Range("AB1000").End(xlUp)(5).Resize(10, 1).Value = Range("V1:V10").Value
Range("W1000").End(xlUp)(2).Resize(10, 1).Value = Range("U1:U10").Value
End If
If Range("V1").Value = Range("AC1").Value And Range("V4").Value > 200 Then
Range("AC1000").End(xlUp)(5).Resize(10, 1).Value = Range("V1:V10").Value
Range("X1000").End(xlUp)(2).Resize(10, 1).Value = Range("U1:U10").Value
End If
If Range("V1").Value = Range("AD1").Value And Range("V4").Value > 200 Then
Range("AD1000").End(xlUp)(5).Resize(10, 1).Value = Range("V1:V10").Value
Range("Y1000").End(xlUp)(2).Resize(10, 1).Value = Range("U1:U10").Value
End If
If Range("V1").Value = Range("AE1").Value And Range("V4").Value > 200 Then
Range("AE1000").End(xlUp)(5).Resize(10, 1).Value = Range("V1:V10").Value
Range("Z1000").End(xlUp)(2).Resize(10, 1).Value = Range("U1:U10").Value
End If
If Range("V1").Value > Range("AB1").Value And Range("V4").Value > 200 Then
Range("AC1:AE1000").Value = Range("AB1:AD1000").Value
Range("X1:Z1000").Value = Range("W1:Y1000").Value
Range("AB1:AB1000").ClearContents
Range("W1:W1000").ClearContents
Range("AB1:AB6").Value = Range("V1:V6").Value
Range("W1:W10").Value = Range("U1:U10").Value
End If
If Range("V1").Value > Range("AC1").Value And Range("V1").Value < Range("AB1").Value And Range("V4").Value > 200 Then
Range("AD1:AE1000").Value = Range("AC1:AD1000").Value
Range("Y1:Z1000").Value = Range("X1:Y1000").Value
Range("AC1:AC1000").ClearContents
Range("X1:X1000").ClearContents
Range("AC1:AC10").Value = Range("V1:V10").Value
Range("X1:X10").Value = Range("U1:U10").Value
End If
If Range("V1").Value > Range("AD1").Value And Range("V1").Value < Range("AC1").Value And Range("V4").Value > 200 Then
Range("Z1:Z1000").Value = Range("Y1:Y1000").Value
Range("AE1:AE1000").Value = Range("AD1:AD1000").Value
Range("AD1:AD1000").ClearContents
Range("Y1:Y1000").ClearContents
Range("AD1:AD10").Value = Range("V1:V10").Value
Range("Y1:Y10").Value = Range("U1:U10").Value
End If
Next 'VarS '(kS)
Next 'VarR '(kR)
Next 'VarQ '(kQ)
Next 'VarP '(kP)
Next 'VarO '(kO)
Next 'L
Next 'K
Next 'D
Next 'C
Next 'B
Next 'A
heure = (Timer - Deb) \ 3600
minute = ((Timer - Deb) - heure * 3600) \ 60
seconde = (Timer - Deb) - (heure * 3600) - minute * 60
Range("S1") = heure & " : " & minute & ":" & seconde
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub |
Partager