IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compteur de ligne uniquement pour les lignes affichées suite à un filtre


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 51
    Points
    51
    Par défaut Compteur de ligne uniquement pour les lignes affichées suite à un filtre
    Bonjour,
    J'aimerais écrire une macro pour numéroter chaque ligne qui s'affiche suite à un filtre.

    Nom : macro.jpg
Affichages : 429
Taille : 61,2 Ko

    merci.
    Cordialement.

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour,

    Regardes ici
    En formule.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub lignesfilrees()
        Dim LignesFiltrees As Range
        Dim CountLignes
        Dim Zone As Range
        Dim ligne As Range
     
        Set LignesFiltrees = ActiveSheet.Range("_FilterDataBase").Offset(1, 0).Resize(Range("_FilterDataBase"). _
                                                                                      Rows.Count - 1).SpecialCells(xlCellTypeVisible)
        LignesFiltrees.Select
        MsgBox LignesFiltrees.Address
        CountLignes = 0
        For Each Zone In LignesFiltrees.Areas
            For Each ligne In Zone.Rows
            'Ici je fais quelque chose avec ma ligne
                CountLignes = CountLignes + 1
            Next ligne
        Next Zone
        Debug.Print CountLignes
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Points : 190
    Points
    190
    Par défaut numeroter lignes visibles
    Bonjour,

    Sinon, tout simplement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Option Explicit
     
    Sub test()
    Dim Cpt As Integer
     
    Cpt = 1
    Range("A5").Select
    Do While ActiveCell <> 0
        If ActiveCell.Height <> 0 Then 'ligne visible
            ActiveCell.Offset(0, 5) = Cpt
            Cpt = Cpt + 1
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
     
    End Sub
    Rem : ma liste commence en A5, et mon compteur est ds la 5e colonne !

    Mais bon les autres solutions doivent surement être judicieuses.

    Cordialement.

    Bruno

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    My 2 Cents

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub mesfiltres()
    Dim Cell As Range, i As Long
        For Each Cell In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeVisible)
            Cell.Offset(0, 1).Value = i
            i = i + 1
        Next Cell
    End Sub
    adapter le offset bien sûr, ou alors procéder sur ce modèle à adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub mesfiltres()
    Dim Cell As Range, i As Long, Colonne As Long
        With ActiveSheet
            Set Cell = .Rows(1).Find(0, , , xlWhole)
            If Not Cell Is Nothing Then
                Colonne = Cell.Column
                Cell.EntireColumn.Delete
            Else
                Colonne = .UsedRange.Columns.Count + 1
            End If
     
            For Each Cell In .UsedRange.Columns(1).SpecialCells(xlCellTypeVisible)
                Cell.Offset(0, Colonne - 1).Value = i
                i = i + 1
            Next Cell
        End With
    End Sub

Discussions similaires

  1. [XL-2007] Afficher zéro pour les lignes vides d'un TCD
    Par Invité dans le forum Excel
    Réponses: 13
    Dernier message: 12/09/2013, 09h27
  2. Afficher que les lignes uniques
    Par boitenospam dans le forum Excel
    Réponses: 4
    Dernier message: 29/11/2012, 21h10
  3. Réponses: 10
    Dernier message: 09/02/2010, 10h28
  4. afficher des entêtes pour les lignes d'une jtable
    Par minanoun dans le forum Composants
    Réponses: 4
    Dernier message: 13/04/2009, 02h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo