Rangement colonne sans permutation

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

J

JJ1

Guest
Bonjour,

Je souhaiterais trier ma colonne (Feuil1, base) dans la Feuille2 (tri) mais sans tenir compte des permutations: AAABB est équivalent à AABAB par exemple, pour ensuite faire un comptage par sous-total.
Comment puis-je regrouper dans ma colonne les valeurs identiques(sans permutation) pour les compter.
merci beaucoup
Bon AM
 

Pièces jointes

Re : Rangement colonne sans permutation

Bonjour JJ1 🙂,
Une petite fonction personnalisée en utilisant le tri de JB
Code:
[COLOR=blue]Option Base[/COLOR] 1
[COLOR=blue]Function[/COLOR] TriPermutation(MaString [COLOR=blue]As String[/COLOR]) [COLOR=blue]As String[/COLOR]
[COLOR=blue]Dim[/COLOR] I [COLOR=blue]As Integer[/COLOR], Tablo()
[COLOR=blue]If[/COLOR] MaString = "" [COLOR=blue]Then Exit Function[/COLOR]
[COLOR=blue]For[/COLOR] I = 1 [COLOR=blue]To[/COLOR] Len(MaString)
[COLOR=blue]ReDim Preserve[/COLOR] Tablo(I)
Tablo(I) = Mid(MaString, I, 1)
[COLOR=blue]Next[/COLOR] I
[COLOR=blue]Call[/COLOR] tri(Tablo, [COLOR=blue]LBound[/COLOR](Tablo), [COLOR=blue]UBound[/COLOR](Tablo))
[COLOR=blue]For[/COLOR] I = 1 [COLOR=blue]To[/COLOR] Len(MaString)
TriPermutation = TriPermutation & Tablo(I)
[COLOR=blue]Next[/COLOR] I
[COLOR=blue]End Function[/COLOR]
[COLOR=blue]Sub[/COLOR] tri(a, gauc, droi) [COLOR=green]' Quick sort de JB[/COLOR]
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  [COLOR=blue]Do[/COLOR]
    [COLOR=blue]Do While[/COLOR] a(g) < ref: g = g + 1: [COLOR=blue]Loop[/COLOR]
    [COLOR=blue]Do While[/COLOR] ref < a(d): d = d - 1: [COLOR=blue]Loop[/COLOR]
    [COLOR=blue]If[/COLOR] g <= d [COLOR=blue]Then[/COLOR]
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    [COLOR=blue]End If[/COLOR]
  [COLOR=blue]Loop While[/COLOR] g <= d
  [COLOR=blue]If[/COLOR] g < droi [COLOR=blue]Then Call[/COLOR] tri(a, g, droi)
  [COLOR=blue]If[/COLOR] gauc < d [COLOR=blue]Then Call[/COLOR] tri(a, gauc, d)
[COLOR=blue]End Sub[/COLOR]
Il te suffit après de trier le résultat de la fonction 😉.
Bonne soirée 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
1 K
T
  • Résolu(e)
Réponses
6
Affichages
887
Turbine-Compresseur
T
R
Réponses
7
Affichages
1 K
D
Réponses
5
Affichages
2 K
Dje_Ejd
D
B
Réponses
2
Affichages
1 K
J
Réponses
1
Affichages
958
Retour