Problème d'indices sur Excel

Bonjour à tous.

Je dispose d'une base de données d'environ 20 000 lignes sur Excel contenant dans la colonne A des références et dans la colonne B des indices. Certaines références apparaissent plusieurs fois, mais à des indices différents. Je souhaiterais ne faire apparaitre que celles avec l'indice le plus élevé. Cela fait 2 jours que je suis dessus mais impossible de trouver une solution. Je suis débutant/amateur sur Excel donc pour tout ce qui est VBA et Macro je ne maîtrise pas trop.

Merci à la personne qui pourra m'aider

Bonjour,

Postez un fichier représentatif on va pouvoir vous montrer comment faire. Ca devrait etre rapide vue votre version

Mon document étant confidentiel, je vous joint un exemple de ce que j'ai, mais une version beaucoup plus simple.

Ici, je voudrais que par exemple pour la référence AB123CD, étant donné qu'elle apparait 2 fois mais avec 2 indices différents, que seul l'indice 2 soit affiché, idem pour GGHDFTH55.

15indices.xlsx (9.11 Ko)

Bonjour,
Un exemple.
Cdlt.

7indices.xlsm (18.12 Ko)
Public Sub RemoveDuplicates()
Dim rngData As Range
    Set rngData = ActiveSheet.Range("Tableau1")
    With rngData.ListObject
        With .Sort
            .SortFields.Add Key:=rngData(0, 1), Order:=xlAscending
            .SortFields.Add Key:=rngData(0, 2), Order:=xlDescending
            .Header = xlYes
            .Apply
            .SortFields.Clear
        End With
        .Range.RemoveDuplicates Columns:=1
    End With
End Sub

Bonjour le forum

Ou un tableau croisé en feuille 2

12fcyspm-indices.xlsx (14.25 Ko)

Bonjour à tous,

Il manquait une approche "Power Query" () :

9loumsa-pq-v0.xlsx (23.64 Ko)

Merci beaucoup, serait il possible de savoir plus ou moins comment fonctionne la macro? Je trouve ça super intéressant !

Le problème pour le tableau dynamique croisé c'est que tous les indices passent à 0 quand je mets "Max de l'indice".

JFL grâce à ton fichier je commence à saisir la subtilité de PQ

Bonjour de nouveau,

Le problème pour le tableau dynamique croisé c'est que tous les indices passent à 0 quand je mets "Max de l'indice".

Quand vous "mettez" ? Que voulez-vous dire ?

Dans les champs de tableau dynamique croisé, puis dans les valeurs, je glisse indice, puis je click dessus, "paramètres de champs de valeur", et enfin "Max"

Re,
Que ne comprends-tu pas ?
Sinon, en cas de doublons, Excel conserve la 1ère. valeur.
La raison pour laquelle, on fait un tri descendant sur les valeurs Indice.
Cdlt.

Bonjour,

Une autre approche par PQ différent de JFL, je ne sais pas ce que ca vaut..

8indices.xlsx (16.57 Ko)

Re,

Donc vous faites d'abord un tri descendant, c'est a dire que dès qu'il trouve 2 fois la même référence il les range de l'indice le plus haut vers le plus bas, puis il garde la plus grande et supprime les autres ?

Ce que je ne comprend pas c'est surtout la signification des lignes de code dans la macro, mais c'est parce que je suis encor débutant et que je n'ai jamais vraiment exploré le monde du VBA

En tout cas merci à tout ceux qui m'ont aidé !!! (je me suis inscrit il y a seulement une heure et je suis déjà très content)

Re,
Quelques explications. Seront elles suffisantes ?
Cdlt.

Public Sub RemoveDuplicates()
'Déclaration des variables
Dim rngData As Range
    'Initialisation des variable
    'rngData correspond à la plage de Tableau1 en feuil1
    Set rngData = ActiveSheet.Range("Tableau1")
    'Avec Tableau1
    With rngData.ListObject
        'On définit le tri
        With .Sort
            'Colonne Référence
            .SortFields.Add Key:=rngData(0, 1), Order:=xlAscending
            'Colonne Indice
            .SortFields.Add Key:=rngData(0, 2), Order:=xlDescending
            'Le tableau comporte un en-tête
            .Header = xlYes
            'On applique le filtre
            .Apply
            'On efface la définition du tri
            .SortFields.Clear
        End With
        'On supprime les doublons de la colonne 1 (Référence)
        .Range.RemoveDuplicates Columns:=1
    End With
End Sub

Bonjour de nouveau,

Dans les champs de tableau dynamique croisé, puis dans les valeurs, je glisse indice, puis je click dessus, "paramètres de champs de valeur", et enfin "Max"

Etrange....

Vous devez faire une manipulation inadéquate car le TCD proposé par fcyspm30 est parfaitement opérationnel ! (Je viens de le créer....)

Bonjour de nouveau,

JFL grâce à ton fichier je commence à saisir la subtilité de PQ

A la bonne heure....!

Investiguez....Investiguez.....C'est une excellente manière de s'approprier l'outil.

Jean Eric, j'ai encore un autre soucis.

En effet, j'ai appliqué cette macro qui fonctionne très bien. Saut que, dans mon tableau initial, j'ai une troisième colonne qui me dis si la référence est validée, archivée ou en cours de validation. J'ai appliqué un filtre pour ne voir que celles qui sont validées puis j'ai exécuté la macro. Cependant, celle-ci prend en compte aussi celles qui sont archivées et en cours de validation. Donc pour certaines références, il y a des couacs.

Je sais que le plus facile c'est d'extraire les validées dans une autre feuille et d'exécuter la macro, mais est-il possible d'intégrer le fait qu'il faut que la référence soit seulement validée la prendre en compte ? Et ainsi laisser les autres comme elles sont initialement.

Rechercher des sujets similaires à "probleme indices"