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
|
Sub Copie()
Dim Plage As Range, Sh As Worksheet, Ligne As Long
Set Sh = Sheets("Indicateur_Qualite")
With Sheets("Table")
'définition de la plage source
Set Plage = .Range(.[A3], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 64)
.AutoFilterMode = False
'filtre sur la colonne G
Plage.AutoFilter 7, Sh.[S4]
'élimination de la ligne des entêtes
Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
's'il; y a des lignes filtrées
If Application.Subtotal(103, Plage) > 0 Then
' détermination de la ligne où écrire
Ligne = Sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
If Ligne < 5 Then Ligne = 5
'sélection de la colonne G
Set Plage = Plage.Resize(, 1).Offset(, 6)
Plage.Copy
Sh.Cells(Ligne, 1).PasteSpecial xlPasteValues
'sélection de la colonne E
Set Plage = Plage.Resize(, 1).Offset(, 4)
Plage.Copy
Sh.Cells(Ligne, 2).PasteSpecial xlPasteValues
'sélection de la colonne H
Set Plage = Plage.Resize(, 1).Offset(, 7)
Plage.Copy
Sh.Cells(Ligne, 3).PasteSpecial xlPasteValues
End If
.AutoFilterMode = False
End With
End Sub |
Partager