Sub CopierSelonCondition()
Dim Valeur4Trouvee As Boolean, Valeur5Trouvee As Boolean
Dim I As Long, J As Long, DerniereColonne As Long, DerniereLigne As Long
Dim Ws1 As Worksheet, Ws4 As Worksheet, Ws5 As Worksheet
Dim PlageACopier As Range, PlageATester As Range
Set Ws1 = Sheets("Feuil1"): Set Ws4 = Sheets("Feuil4"): Set Ws5 = Sheets("Feuil5")
With Ws1
DerniereColonne = .Cells(1, .Columns.Count).End(xlToLeft).Column
DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
Set PlageATester = .Range(.Cells(1, 2), .Cells(DerniereLigne, 1))
For I = 1 To PlageATester.Count
Set PlageACopier = .Range(.Cells(I, 1), .Cells(I, DerniereColonne))
Valeur4Trouvee = False: Valeur5Trouvee = False
For J = 3 To 8
Select Case PlageACopier(J)
Case 5
If Valeur5Trouvee = False Then
CollerDansOnglet Ws5, PlageACopier
Valeur5Trouvee = True
End If
Case 4
If Valeur4Trouvee = False Then
CollerDansOnglet Ws4, PlageACopier
Valeur4Trouvee = True
End If
End Select
Next J
Next I
End With
Ws4.Columns(1).NumberFormat = "dddd dd mmmm yyyy"
Ws5.Columns(1).NumberFormat = "dddd dd mmmm yyyy"
Set Ws1 = Nothing: Set Ws4 = Nothing: Set Ws5 = Nothing
Set PlageACopier = Nothing: Set PlageATester = Nothing
End Sub
Sub CollerDansOnglet(ByVal ShDest As Worksheet, ByVal AireAColler As Range)
Dim LigneDest As Long
AireAColler.Copy
With ShDest
LigneDest = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
.Cells(LigneDest, "A").PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub