Afficher les critères AutoFilter après le filtrage en utilisant VBA dans Microsoft Excel
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.
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é.
Nous cliquons sur le bouton «Séparer les données du filtre» pour obtenir les critères pour lesquels le filtre est appliqué.
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]