Monsieur Excel
Pour tout savoir faire sur Excel !

12 février 2011

Indexer une sélection d’une base

Le problème à résoudre aujourd’hui est un problème auquel de nombreux développeurs Excel ont été confrontés. Il s’agit, après avoir sélectionné certains enregistrements grâce à un filtre dans une base Excel, de numéroter les résultats de la sélection.

Dans l’exemple ci-dessous, nous avons sélectionné dans une base tous les garçons (colonne A) et nous voulons créer (colonne H) des numéros d’ordre pour les lignes retenues par la sélection :

La solution que nous vous proposons ci-dessous est adaptée d’une solution proposée par un développeur VBA anglais, Pascal Daulton.

Elle fonctionne pour la base sur laquelle vous avez un filtre actif, dans la feuille active :

3 Commentaire(s):

  • Je n'ai peut-être pas bien vu le problème, mais la solution me parait bien complexe (et Intersect, et Specialcells, et Offset, et Resize,... svp n'en jetez plus !)
    Est-ce que ceci ne peut pas faire l'affaire ?
    Sub Indexation()
    For Each ligne In Range("_FilterDataBase").Rows
    If Not ligne.Hidden Then
    Cells(ligne.Row, 8).Value = n
    n = n + 1
    End If
    Next ligne
    End Sub

    By Anonymous cduigou, sur 11:32 AM  

  • Cela fonctionne parfaitement !

    Une fois de plus, c'est l'occasion de voir qu'il y a très souvent, pour ne pas dire toujours, plusieurs façons d'atteindre le même but dans Excel :)

    By Blogger Hervé Thiriez, sur 8:16 AM  

  • Euh... certes, mais ce n'est tout de même pas à vous que je vais apprendre que tous les "chemins" qui mènent à Rome sont équivalents... :))

    By Anonymous cduigou, sur 11:43 AM  

Enregistrer un commentaire

<< Accueil