VBA
exemple:
colonne A: colonne B: colonne A:
230 16 231 16
270 20 231 16
231 15 solution souhaitable 231 17
230 19 230 19
231 16 230 16
231 17 270 20
c'est-à dire on classe la valeur la plus répétée ainsi de suit
37 réponses
La discussion porte sur une macro ou une méthode pour trier un tableau à deux colonnes, A et B, en plaçant les valeurs les plus répétées de A en tête et en réordonnant B. Plusieurs participants proposent d’utiliser une colonne auxiliaire avec NB.SI pour compter les occurrences, puis de trier d’abord par ce compte décroissant et ensuite par les valeurs d’A. D’autres suggèrent une approche macro directe ou l’ajout d’une colonne C avec NB.SI(A:A;A2) puis tri par nb décroissant et par colonne A, afin de regrouper les mêmes valeurs avant les autres. Pour éviter les doublons et garantir une répartition stable, certains recommandent aussi d’ajouter une colonne d’index ou d’utiliser un tri secondaire sur B afin d’assurer la stabilité.
-
lors de l'exécution du programme un erreur dans l'instruction suivante " [C2].Resize(derlig - 1).FormulaLocal = "=NB.SI(A:A;A2)" est affiché
-
-
-
-
https://www.cjoint.com/?DEAp6UyzNlG voila le lien de fichier
-
-
-
Bonjour
attends je vais le tester
Merci -
ContributeurBonjour,
Regarde si ça va :Sub tri() Dim derlig As Long [C:C].Insert Shift:=xlToRight derlig = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False [C1] = "Nb" [C2].Resize(derlig - 1).FormulaLocal = "=NB.SI(A:A;A2)" [A:C].Sort Key1:=Range("C2"), Order1:=xlDescending, _ Key2:=Range("A2"), Order2:=xlAscending, _ Key3:=Range("B2"), Order3:=xlAscending, Header:=xlYes [C:C].Delete Shift:=xlToLeft [A1].Select End Sub
https://www.cjoint.com/?DEAnPYksLyL
eric
-
Bonjour
la société m'obligé de faire une application sous macro
Merci -
ContributeurBonjour,
Pourquoi par macro ?
Il suffit d'ajouter une colonne nb en C avec : =NB.SI(A:A;A2)
Puis de trier par nb décroissant puis par CON_A
eric
-
Salut,
avez vous des idées?? -
Bonjour skk201
avez vous de nouveau pour la macro ?
Merci -
oui c'est normal et pour le dernier question n'est pas important le classement c'est-à-dire soit 1//2//3 soit 3//2//1 soit 2//3//1
merci -
A la ligne 337 une des valeur de la colonne A = 0 Est-ce normal ?
Je le demande car ça crée une erreur, donc ci c'est normal je fait un manipulation pour éviter l'erreur, si non je laisse comme ça et je change la valeur
Et une dernière question :
Si un nombre X de la colonne A est lié au nombres : 1,2,3 dans la colonnes B
Est- ce que le résultat doit être :
Colonne A : X // X // X
Colonne B : 1 // 2 // 3
ou
Colonne A : X // X // X
Colonne B : 3 //2 // 1
ou peut importe ?
Colonne A : X // X // X
Colonne B : 2 // 3 // 1 -
Oui je vais les faire dans deux colonnes constantes (A et B)
-
Et donc les colonnes a ordoner sont toujours A et B ?
-
tu peux prendre 500 comme valeur maximal
merci -
Le problème c'est que c'est une macro difficile à adapter :)
C'est toujours les les colonnes A et B qui sont concernée ?
Combient de valeur au maximum dans la colonnes A tu as ? -
la macro qui donne le bon résultat car je vais l'utiliser pour d'autre liste :)
Cordialement -
Oui j'ai bientot Fini :)
Mais enfaite ce qui vous interesse c'est la macro ou juste le résultat ? -
Désolé pour le dérangement et merci par avance de me dire est-ce que vous pouvez le faire
-
Bonjour,
oui ne sont pas importants mercii -
Les nombres en couleur au fond de la liste n'ont pas d'importance ?
-
voilà le lien https://www.cjoint.com/?DEwrDneChoh
-
Euh c'est impossible que vous ayez envoyé le fichier excel mais je vous invite à le télécharger sur cjoint.com et me copier le lien
- 1
- 2