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 filtreetimprimer()
Dim F1 As Worksheet
Dim F2 As Worksheet
Set F1 = Sheets("TGRI")
Set F2 = Sheets("FD")
Dim Lig As Long
Application.ScreenUpdating = False
Lig = F1.Cells(Rows.Count, 4).End(xlUp).Row
Set d = CreateObject("scripting.dictionary")
d.CompareMode = vbTextCompare
Dim liste As New Collection
Dim i As Integer
On Error Resume Next
For Each cel In F2.Range("D28:D37")
If F2.Cells(cel.Row, 4) <> "" Then
liste.Add cel.Value, CStr(cel.Value)
End If
Next cel
For Each c In liste: d(c) = "": Next c
F1.Range("D6:BL" & Lig).AutoFilter Field:=7, Criteria1:=d.keys, Operator:=xlFilterValues
F1.Range("D:I,K:M,P:R,T:V,Z:AD,AJ:BC,BE:BH,BJ:BL").EntireColumn.Hidden = True
'Application.Dialogs(xlDialogPrinterSetup).Show 'Pour choisir l'imprimante
With F1.PageSetup
.PrintArea = ("D6:BL" & Lig)
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
F1.PrintOut copies:=1
' ********************** enlever filtre
If Not F1.AutoFilter Is Nothing Then
If F1.FilterMode Then F1.ShowAllData
F1.AutoFilter.Range.AutoFilter
End If
' afficher colonne
F1.Range("D:I,K:M,P:R,T:V,Z:AD,AJ:BC,BE:BH,BJ:BL").EntireColumn.Hidden = False
Application.ScreenUpdating = True
End Sub |
Partager