Macro: comment sélectionner la sélection entière et variable d'un filtre automatique?

Boubas1

XLDnaute Occasionnel
Bonjour,

Sachant que la sélection de mon filtre automatique ne contiendra pas toujours le même nombre de ligne mais néanmoins toujours le même nombre de colonnes (colonne A à G de mon onglet "x") mon filtre automatique étant colonne D > ou égal à 1, dans mon exemple je ne veux donc que les lignes 18 et 21. (soit A18 à G21)
Dans une macro, quel est le code pour automatiser cette opération avec des nombres de lignes qui peuvent varier et la première ligne de ma sélection ne commençant pas toujours en A18 ? Merci.
 

Pièces jointes

  • essaiBIOS.xls
    108.5 KB · Affichages: 73
  • essaiBIOS.xls
    108.5 KB · Affichages: 69
  • essaiBIOS.xls
    108.5 KB · Affichages: 71
G

Guest

Guest
Re: Macro: comment sélectionner la sélection entière et variable d'un filtre automati

Bonsoir,

Voici une fonction qui retournera la plage des lignes visibles de A15 à G68 et dont la colonne A n'est pas vide.

Code:
Function GetLignesVisibles() As Range
    Dim plg As Range, r As Range
    With Sheets("Résumé")
        For Each r In .Range("A14:G68").Rows
            'Si la ligne est visible et que la cellule de la colonne A n'est pas vide
            If Not r.EntireRow.Hidden And r(1, 1) <> "" Then
                If plg Is Nothing Then Set plg = r Else Set plg = Union(plg, r)
            End If
        Next
    End With
    Set GetLignesVisibles = plg
End Function

Utilisation:
Code:
Dim MaPlage=GetLignesVisibles()
If Not MaPlage Is Nothing then MaPlage.Select

A+
 

Boubas1

XLDnaute Occasionnel
Re : Re: Macro: comment sélectionner la sélection entière et variable d'un filtre aut

D'accord.

Et sinon, cette solution vous paraît-elle correcte ou pas ?

Sheets("x").Select
Rows("13:13").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=">=1", Operator:=xlAnd
Range("A14:G14").Select
Range(Selection, Selection.End(xlDown)).Select
End Sub
 

Hippolite

XLDnaute Accro
Re : Macro: comment sélectionner la sélection entière et variable d'un filtre automat

Bonjour à tous,

Attention, il est déconseillé d'utiliser des cellules fusionnées qui créent des conflits avec VBA, les cellules fusionnées étant mal identifiées, il faut utiliser le format "centré sur plusieurs colonnes".

Après filtrage, pour sélectionner les cellules visibles, on sélectionne ce que l'on voit (mais les lignes cachées sont alors également sélectionnées), puis Menu / Edition / Atteindre… / Cellules… / cellules visibles seulement / OK . Seule la sélection visible est alors sélectionnée.
C'est ce que fait la macro ci-dessous, j'ai ajouté le comptage des lignes sélectionnées.

VB:
Public Sub Test()
'Sélection des cellules visibles
    Dlign = Feuil2.Range("A13").End(xlDown).Row 'Dernière cellule de la colonne A, attention pas de cellule vide
    If Dlign > 68 Then Dlign = 68 'Cas où toutes les lignes sont renseignées
    Feuil2.Activate
    Feuil2.Range("A14:G" & Dlign).Select
    Selection.SpecialCells(xlCellTypeVisible).Select

'Nombre de lignes sélectionnées
    For Each L In Selection.Rows
        nLignVis = nLignVis + 1
    Next L
End Sub

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 339
Membres
103 524
dernier inscrit
Smile1813