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
| Sub filtre()
Dim aa As String
Dim MinC As Double, MaxC As Long
Dim MinMn As Double, MaxMn As Long
Dim MinSi As Double, MaxSi As Long
Dim MinNi As Double, MaxNi As Long
Dim MinCr As Double, MaxCr As Long
'...
Dim Minpoidslgt As Double, Maxpoidslgt As Long
Dim Minduréelaminage1 As Double, Maxduréelaminage1 As Long
Dim Minduréelaminage2 As Double, Maxduréelaminage2 As Long
Dim Mintempératurelaminage1 As Double, Maxtempératurelaminage1 As Long
Dim Mintempératurelaminage2 As Double, Maxtempératurelaminage2 As Long
Dim Minpoidsenfausté1 As Double, Maxpoidsenfausté1 As Long
'...
Dim Plage As Range
Application.ScreenUpdating = False
With Sheets("base de données")
.AutoFilterMode = False
Set Plage = .Range("A7:EQ500")
End With
'....
With Sheets("Laminage")
If Application.CountBlank(.Range("K3:L3")) < 2 Then
Minduréelaminage1 = IIf(.Range("K3").Value = "", Application.Min(Plage), .Range("K3"))
Maxduréelaminage1 = IIf(.Range("L3").Value = "", Application.Max(Plage), .Range("L3"))
Plage.AutoFilter field:=33, Criteria1:=">=" & Minduréelaminage1, Criteria2:="<=" & Maxduréelaminage1, Operator:=xlAnd
End If
If Application.CountBlank(.Range("K13:L13")) < 2 Then
Minduréelaminage2 = IIf(.Range("K13").Value = "", Application.Min(Plage), .Range("K13"))
Maxduréelaminage2 = IIf(.Range("L13").Value = "", Application.Max(Plage), .Range("L13"))
Plage.AutoFilter field:=34, Criteria1:=">=" & Minduréelaminage2, Criteria2:="<=" & Maxduréelaminage2, Operator:=xlAnd
End If
If Application.CountBlank(.Range("Q3:R3")) < 2 Then
Mintempératurelaminage1 = IIf(.Range("Q3").Value = "", Application.Min(Plage), .Range("Q3"))
Maxtempératurelaminage1 = IIf(.Range("R3").Value = "", Application.Max(Plage), .Range("R3"))
Plage.AutoFilter field:=35, Criteria1:=">=" & Mintempératurelaminage1, Criteria2:="<=" & Maxtempératurelaminage1, Operator:=xlAnd
End If
If Application.CountBlank(.Range("Q13:R13")) < 2 Then
Mintempératurelaminage2 = IIf(.Range("Q13").Value = "", Application.Min(Plage), .Range("Q13"))
Maxtempératurelaminage2 = IIf(.Range("R13").Value = "", Application.Max(Plage), .Range("R13"))
Plage.AutoFilter field:=36, Criteria1:=">=" & Mintempératurelaminage2, Criteria2:="<=" & Maxtempératurelaminage2, Operator:=xlAnd
End If
End With
'...
If Worksheets("Laminage").Range("D13").Value <> "" Then
Worksheets("Base de données").Range("$A$7:$EQ$500").AutoFilter field:=37, Criteria1:=Worksheets("Laminage").Range("D13").Value
Else
Worksheets("Base de données").Range("$A$7:$EQ$1000").AutoFilter field:=37
End If
'... |
Partager