trouver la premiere et derniere ligne apres un filtre

  • Initiateur de la discussion Initiateur de la discussion Defcom60
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Defcom60

Guest
Bonjour,

Je cherche un script en vba pour determiné la premiere ligne visible et la derniere ligne visible lors d'un filtre automatique.

je cherche ces valeurs pour les utilisés dans un graphique.

Merci.
 
Re : trouver la premiere et derniere ligne apres un filtre

Bonsoir Defcom60, le Forum,

Ci-dessous, une façon de faire :
Code:
[COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

[COLOR=NAVY]Option Explicit[/COLOR]

[COLOR=NAVY]Sub[/COLOR] LignFiltrees()
[COLOR=GREEN]'myDearFriend!  -  www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Plage [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]With[/COLOR] ActiveSheet
        [COLOR=NAVY]Set[/COLOR] Plage = Intersect(.UsedRange, .Cells.SpecialCells(xlCellTypeVisible), _
                    .Range(.Cells(2, 1), .Cells(Application.Rows.Count, 256)))
    [COLOR=NAVY]End With[/COLOR]

    MsgBox "1ere ligne visible = " & Plage(1).Row
    MsgBox "Dernière ligne visible = " & Plage(Plage.Count).Row
[COLOR=NAVY]End Sub[/COLOR]
Cordialement,
 
Re : trouver la premiere et derniere ligne apres un filtre

Bonsoir Defcom, bonsoir le forum,

Il doit y avoir plus simple que ces deux boucles qui vont s'éterniser si ta liste est longue mais je n'ai pas mieux. Tu adapteras la colonne car tu n'as pas précisé.

Code:
Sub Macro1()
Dim pl As Integer 'déclare la variable pl
Dim dl As Integer 'déclare la variable dl
Dim x As Integer 'déclare la variable x
Dim y As Integer 'déclare la variable y
For x = 2 To Range("A65536").End(xlUp).Row 'boucle sur les cellules éditée de la colonne A
    If Cells(x, 1).EntireRow.Hidden = False Then 'condition : si la ligne de la cellule st visible
        pl = x 'définit la variable pl
        Exit For 'sort de la boucle
    End If 'fin de la condition
Next x 'nouvelle cellule de la boucle
'idem mais inversé (de la dernière en remontant)
For y = Range("A65536").End(xlUp).Row To 2 Step -1
    If Cells(y, 1).EntireRow.Hidden = False Then
        dl = y
        Exit For
    End If
Next y
MsgBox "la première ligne est  " & pl & ", la dernière ligne est " & dl & "." 'message
End Sub

Édition :

Mort de rire, je pensais à toi Didier sur ce coup là. Je te salue mon cher ami.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
103
Réponses
16
Affichages
504
Réponses
5
Affichages
170
Réponses
23
Affichages
666
Retour