1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Option Explicit
Const shtFromName As String = "Feuil2" ' Nom de la feuille contenant les données à exporter
Const Addr As String = "E4:F11" ' Adresse de la feuille 2
Const rngCritName As String = "pnCritere" ' Nom de la plage contenant les critères
Sub Main()
Dim rngFrom As Range, rngCrit As Range
With ThisWorkbook
Set rngFrom = .Worksheets(shtFromName).Range(Addr).CurrentRegion
Set rngCrit = .Worksheets(shtFromName).Range(rngCritName)
End With
FilterCopy rngFrom, rngCrit ' Exporte
End Sub
Sub FilterCopy(dBase As Range, rngCriteria As Range)
Application.ScreenUpdating = False
If Not (ActiveSheet.Cells.Find("*") Is Nothing) Then
' Si la feuille n'est pas vide, création d'une feuille pour copier les données
Worksheets.Add before:=Sheets(1): ActiveCell = Worksheets(1).Range("A1")
Worksheets(1).Tab.Color = vbRed
flagNotEmpty = True
End If
dBase.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=rngCriteria, _
CopyToRange:=ActiveCell, Unique:=False
Application.ScreenUpdating = False
End Sub |
Partager