Dans cet article, nous allons créer une macro pour afficher les critères utilisés dans le filtre automatique.

Les données brutes se composent des détails du client, qui incluent le nom, le numéro de téléphone, l’identifiant de messagerie et le nom de l’entreprise.

ArrowRawData

Nous avons appliqué un filtre dans la colonne Entreprise et nous voulons maintenant déterminer le nom de la complany sur laquelle le filtre est appliqué.

ArrowFilterData

Nous cliquons sur le bouton «Séparer les données du filtre» pour obtenir les critères pour lesquels le filtre est appliqué.

ArrowOutput

Explication du code

IntRow = Range (« A10 »). CurrentRegion.Rows.Count + 12 Le code ci-dessus est utilisé pour obtenir un numéro de ligne, où la sortie doit être affichée.

ActiveSheet.AutoFilter.Filters (IntCol) .On Le code ci-dessus est utilisé pour vérifier si le filtre est appliqué sur la colonne particulière.

Pour chaque StringValue In .Criteria1 MainString = MainString + Mid (StringValue, 2) + « | »

Next Le code ci-dessus est utilisé pour créer une chaîne qui comprend toutes les valeurs de critères, utilisées dans le filtre.

Plage (« A10 »). CurrentRegion.SpecialCells (xlCellTypeVisible) .Copy _ Cells (IntRow + 1, 1)

Le code ci-dessus est utilisé pour copier les lignes visibles vers la destination spécifiée.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub FilterCriteria()

'Declaring variables

Dim IntRow, IntCol As Integer

Dim MainString, StringValue As Variant

'Initializing the row and column number

IntRow = Range("A10").CurrentRegion.Rows.Count + 12

IntCol = 1

'Looping through all the cells until blank cell is encountered in the 10th row

Do Until IsEmpty(Cells(10, IntCol))



With ActiveSheet.AutoFilter.Filters(IntCol)

'Checking whether filter is applied on the column

If .On Then



MainString = "Filter On Column no. " & IntCol & " on values : "



'Creating text which consists of values used in the filter

For Each StringValue In .Criteria1

MainString = MainString + Mid(StringValue, 2) + "|"

Next



'Assigning value to cell

Cells(IntRow, 1).Value = MainString



Exit Do



End If



End With



IntCol = IntCol + 1

Loop

'Copying the visible cells to row after the filter data

Range("A10").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _

Cells(IntRow + 1, 1)

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]