afficher les valeurs d'une colonne présentes plus de 5 fois

  • Initiateur de la discussion Initiateur de la discussion natorp
  • 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 !

natorp

XLDnaute Barbatruc
Bjr à toutes et tous

Comme l'indique le titre, j'ai besoin d'afficher les noms qui sont présents plus de 5 fois dans la colonne A et leur nombre (voir pièce jointe)

Merci de votre attention et votre aide
Cordialement
Gérard
 

Pièces jointes

Re : afficher les valeurs d'une colonne présentes plus de 5 fois

Re
Testé sur le fichie de Gorfael (que je salue), une autre proposition par macro, bien plus rapide que par formule :
Code:
Sub test()
Dim Tabl, Tabl2, Plage, Plage2, i&, j&
    With Sheets("Feuil2")
        Set Plage = .Range(.[A2], .Range("A" & Rows.Count).End(xlUp))
        Set Plage2 = .Range(.[A1], .Range("A" & Rows.Count).End(xlUp))
        .Range("E9:F" & Plage.Rows.Count).ClearContents
        Tabl = .Range(.[A2], .Range("A" & Rows.Count).End(xlUp)).Value
        Tabl2 = .Evaluate("TRANSPOSE(FREQUENCY(IF(" & Plage.Address & "<> """",MATCH(" & Plage.Address & "," & _
        Plage.Address & ",0)),ROW(" & Plage2.Address & ")))")
        j = 1
        For i = 1 To Plage.Rows.Count
            If Tabl2(i) > 4 Then
            Dim Tabl3()
            ReDim Preserve Tabl3(1 To Plage.Rows.Count, 1)
            Tabl3(j, 0) = Tabl(i, 1)
            Tabl3(j, 1) = Tabl2(i)
            j = j + 1
            End If
         Next i
        .Range("E9:F" & Plage.Rows.Count) = Tabl3
    End With
End Sub
A+
 

Pièces jointes

Dernière édition:
Re : afficher les valeurs d'une colonne présentes plus de 5 fois

Re re
Code légèrement différent à tester également :
Code:
Sub test2()
Dim Tabl, Tabl2, Plage, Plage2, i&, j&, Nb
    With Sheets("Feuil2")
        Set Plage = .Range(.[A2], .Range("A" & Rows.Count).End(xlUp))
        Set Plage2 = .Range(.[A1], .Range("A" & Rows.Count).End(xlUp))
        .Range("C1:D" & Plage.Rows.Count).ClearContents
        Tabl = .Range(.[A2], .Range("A" & Rows.Count).End(xlUp)).Value
        Tabl2 = .Evaluate("TRANSPOSE(FREQUENCY(IF(" & Plage.Address & "<> """",MATCH(" & Plage.Address & "," & _
        Plage.Address & ",0)),ROW(" & Plage2.Address & ")))")
        Nb = .Evaluate("SUM(N(FREQUENCY(IF(" & Plage.Address & "<> """",MATCH(" & Plage.Address & "," & _
        Plage.Address & ",0)),ROW(" & Plage2.Address & "))>4))")
        j = 1
        For i = 1 To Plage.Rows.Count
            If Tabl2(i) > 4 Then
            Dim Tabl3()
            ReDim Preserve Tabl3(1 To Nb, 1)
            Tabl3(j, 0) = Tabl(i, 1)
            Tabl3(j, 1) = Tabl2(i)
            j = j + 1
            End If
         Next i
        .Range("C1:D" & Nb) = Tabl3
    End With
End Sub
A+
 

Pièces jointes

Dernière édition:
Re : afficher les valeurs d'une colonne présentes plus de 5 fois

Bjr à tous et merci pour vos propositions

Je ne pensais pas que vous chercheriez avec macro et du coup j'ai oublié de préciser que mon réseau d'entreprise supprime le VBA, je ne peux donc pas voir ce que nous a concocté Gorfael. Sinon ce que David a fait est tout à fait satisfaisant, par formule et par macro

Vraiment, merci beaucoup de votre aide

Bonne journée, Gérard
 
- 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

Discussions similaires

Retour