Afficher les valeurs qui apparaissent + de 3 fois

Bonjour a tous,

J'aurais besoin de votre aide pour un fichier excel qui me donne du fil à retordre...

C'est une feuille qui comporte 34500 lignes.

Dans la première colonne sont affichés des identifiants de produits (sous forme de chiffre), et un même produit est répété sur plusieurs lignes.

Je souhaiterais éliminer/identifier les lignes produits qui sont répétées moins de 4 fois (inférieur ou égal à 3). Mais je ne trouve pas de formule qui me convienne...

En espérant avoir été assez claire dans la description, je vous remercie par avance de la grande aide que vous pourrez m'apporter.

Bonne fin de journée !!

Bonjour,

Si tu pouvais joindre un petit fichier exemple, avec une centaine de lignes, sans données confidentielles, ça serait plus facile pour nous pour t'aider...

@ te relire

Bonne fin de journée

Bonjour à vous deux,

Un petit test à faire en mettant ce code dans un module

Sub essai()
l = 1
With Sheets(1)
    Do While .Cells(l, "A") <> ""
        nb = Application.CountIf(Sheets("feuil1").Columns(1), .Cells(l, "A"))
        If nb > 1 And nb <= 3 Then
            MsgBox "la ref existe " & nb & " fois."
        End If
        l = l + 1
    Loop
End With
End Sub

je doute que ça fasse l'affaire compte tenu du nombre de lignes.

Il faudra surement passer par un tableau

cordialement

ddetp88

Re bonjour,

Merci à vous deux pour vos réponses.

Je joins un petit fichier exemple, avec en jaune les identifiants que je voudrais afficher à la suite sur un autre onglet par exemple.

ddetp88, merci pour ta proposition. Je ne m'y connais pas du tout en VBA, donc je vais essayer mais ce n'est aps sûr que j'arrive à grand chose^^

Re-,

Désolé, mais j'ai également utilisé du code VBA.

Cependant, tu pourrais le faire à la main, en utilisant le filtre élaboré (ou avancé...)

Regarde le fichier joint, j'ai mis des commentaires dans le code.

J'ai supposé que les onglets se nommaient "Feuil1" et "Feuil2"

S'il faut corriger, tu vas dans le code (en appuyant sur Alt + F11)

Feuil2 est le nom de l'onglet qui va recevoir les produits en quantité supérieure à 3

Feuil1 est le nom de l'onglet qui contient ton tableau de données

J'ai également supposé que ton tableau allait de A1 à Dxxx

J'ai mis dans le code ce qu'il fallait changer, si tes colonnes vont jusqu'à M, par exemple

Si cela ne te convient pas, on pourra toujours essayer "à la main", mais tu ne pourras pas extraire vers un autre onglet

On pourra à la rigueur extraire sur place, sans suppression de ligne, mais en masquant les lignes que tu ne veux pas.

On pourra également extraire vers une autre partie de ton onglet.

A toi de voir

Bon courage

avec une MFC

Bonjour,

possible aussi via un filtre avancé avec un critère calculé =NB.SI($A$2:$A$50;A2)<4

Résultat quasi instantané et s'il y a besoin d'automatiser, en à peine dix lignes de code …


Je suis Charlie - Je suis Bardo

Re-,

Bonsoir Marc

possible aussi via un filtre avancé

Méthode utilisée dans mon exemple...

Bonne soirée

Merci !

Comme je ne peux pas toujours accéder aux .xlsm, sans un aperçu du code ou au moins la méthode utilisée

et comme le filtre avancé est souvent oublié malgré ses qualités (efficacité, rapidité, simplicité) …

Mais là, mea culpa, j'ai encore lu en diagonale …

Au moins, à nous deux, le message est clair !

Bonjour !!

Je viens de regarder vos propositions de solutions.

C'est vraiment super je vous remercie !! (Et comme dirais Johnny Halliday, Vous êtes génials !!)

Du coup je retrouve avec la solution de cousinhub dans la feuille 2 toutes mes cases sauf celles où le produit est répété moins de 4 fois.

Est-il possible de faire l'inverse ? A savoir de retrouver dans la feuille 2 seulement les produits dont la répétition est inférieure à 4 ?

C'est que je souhaiterai identifier ces produits, et que comme j'ai une feuille qui comporte 34500 lignes à la base, ça va être un peu dur de savoir quels produits ont été supprimés au final...

Encore merci pour votre aide, elle m'est très précieuse.

Bonjour,

Dans le code inscrit dans le VBE (Visual Basic Editor), que tu peux lire en faisant Alt + F11, dans le module 1, il y a cette ligne :

    .Range("Z2").FormulaR1C1 = "=COUNTIF(R2C1:R" & DerLig & "C1,RC[-25])>3" 'insertion d'une formule dans la cellule Z2

Il suffit de Remplacer le >3 par <=3..

Rien d'autre à faire...

Bon courage

Super super super Merci beaucoup !!

Bonne journée !

Rechercher des sujets similaires à "afficher valeurs qui apparaissent fois"