Sub DocEnAttente() 'raccourci clavier Ctrl+A
Dim Feuille, Ncol, GardeCol, critere$, lig&, i As Byte, plage As Range
Feuille = Array("PLANS", "Fiche technique", "NC ; note de calcul")
Ncol = Array(13, 13, 12)
GardeCol = Array("A:F,H:J", "A:C,E:J", "A:I") 'colonnes à copier
critere = "Doc. en attente"
Sheets(critere).[3:65536].Clear
lig = 4 '1ère ligne de recopie après le nom de la feuille
Application.ScreenUpdating = False
For i = 0 To UBound(Feuille)
With Sheets(Feuille(i))
With Sheets(critere).Cells(lig - 1, 1) 'nom en gras et souligné
.Value = Feuille(i)
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
.AutoFilterMode = False
Set plage = .Range("A4", .[A65536].End(xlUp)).Resize(, Ncol(i))
plage.AutoFilter Ncol(i), critere
Set plage = plage.Offset(1).SpecialCells(xlCellTypeVisible)
Set plage = Intersect(.Range(GardeCol(i)), plage) 'choix des colonnes
plage.Copy Sheets(critere).Cells(lig, 1) 'restitution
lig = lig + Intersect(.[A:A], plage).Count 'nouvelle ligne de recopie
.AutoFilterMode = False
End With
Next
Sheets(critere).Activate 'facultatif
End Sub