Simplifier macro boucle .

C

carlos

Guest
Bonsoir,

Sub trouverdate()
Dim nb As Date, i As Byte
Dim prem1 As String, deux1 As String
Dim prem2 As String, deux2 As String
Dim prem3 As String, deux3 As String
Dim prem4 As String, deux4 As String
Dim prem5 As String, deux5 As String

effacertout

nb = Range("a1")
prem1 = Range("a3")
deux1 = Range("b3")
prem2 = Range("a4")
deux2 = Range("b4")
prem3 = Range("a5")
deux3 = Range("b5")
prem4 = Range("a6")
deux4 = Range("b6")
prem5 = Range("a7")
deux5 = Range("b7")

For i = 1 To 30
If nb + 7 * (i - 1) <= prem1 Or nb + 7 * (i - 1) >= deux1 _
And nb + 7 * (i - 1) <= prem2 Or nb + 7 * (i - 1) >= deux2 _
And nb + 7 * (i - 1) <= prem3 Or nb + 7 * (i - 1) >= deux3 _
And nb + 7 * (i - 1) <= prem4 Or nb + 7 * (i - 1) >= deux4 _
And nb + 7 * (i - 1) <= prem5 Or nb + 7 * (i - 1) >= deux5 _
Then Range("c" & Range("c30").End(xlUp).Row + 1) = nb + 7 * (i - 1)

Next
End Sub

Merci
 
G

galopin01

Guest
Bonsoir,
Sub Test()
Dim P(5) As Date, D(5) As Date, N As Date, nb As Date, i As Byte, Y As Boolean
effacertout
nb = [A1]
For i = 0 To 4
P(i) = Cells(i + 3, 1).Value
D(i) = Cells(i + 3, 2).Value
Next
N = nb + 7 * (i - 1)
For i = 1 To 30
Y = N <= P(0) Or N >= D(0) And N <= P(1) Or N >= D(1) And _
N <= P(2) Or N >= D(2) And N <= P(3) Or N >= D(3) And N <= P(4) Or N >= D(4)
If Y Then Range("c" & Range("c30").End(xlUp).Row + 1) = N
Next
End Sub
Bon, enfin je crois...
Tu me diras !
 
C

carlos

Guest
Merci galopin de travailler si tard ...

j'ai testé ta macro .....

Ci joint le fichier avec ta macro (test) ...


@ + j'espere
 

Pièces jointes

  • boucleIfElse.zip
    12.1 KB · Affichages: 18
  • boucleIfElse.zip
    12.1 KB · Affichages: 19
  • boucleIfElse.zip
    12.1 KB · Affichages: 17

Statistiques des forums

Discussions
312 581
Messages
2 089 910
Membres
104 303
dernier inscrit
Patdec