Concaténer et trier les valeurs d'une colonne.

xdt03

XLDnaute Nouveau
Bonjour, j'ai regardé un peu partout sur le net et je n'ai rien trouvé qui corresponde à mon besoin.
Je dois créer un calculateur :
- Sur le premier onglet, les utilisateurs doivent pouvoir saisir des pourcentage :

Colonne A / Colonne B
Blé / 10%
Avoine /
Maïs / 50%
Colza / 20%
... ...

- J'ai besoin que sur un autre onglet, une cellule reprenne tous les champs de la colonne A (concaténer) pour lesquels une valeur à été saisie en colonne B. Il faudrait surtout que ces informations soient triées par ordre décroissant de pourcentage.
Exemple : Maïs, Colza, Blé.

J'espère que j'ai été clair, merci d'avance.

Xavier
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Concaténer et trier les valeurs d'une colonne.

Bonjour Xdt et bienvenu, bonjour le forum,

Je te propose la macro suivante :
Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel
 
Application.ScreenUpdating = False 'masque les changements à l'écran
'copie le tableau de l'onglet "Feuil1" dans l'onglet "Feuil2
Sheets("Feuil1").Range("A1").CurrentRegion.Copy Sheets("Feuil2").Range("A1")
 
With Sheets("feuil2") 'prend en compte l'onglet "Feuil2"
    'trie le tableau par ordre décroissant des pourcentages
    .Range("A1").CurrentRegion.Sort Key1:=.Range("B1"), Order1:=xlDescending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    'boucle sur toutes les cellules éditées cel de la colonne A contenant un pourcentage
    For Each cel In .Range("A1:A" & .Range("B65536").End(xlUp).Row)
        'concatene en D1 la valeur de la cellule avec la valeur de D1
        .Range("D1").Value = .Range("D1").Value & ", " & cel.Value
    Next cel 'prochaine cellule de la boucle
    .Range("D1").Value = Mid(.Range("d1").Value, 3) 'supprimme la première virgule et l'espace en D1
    .Range("A:C").Delete 'supprime les colonnes A à C
End With 'fin de la prise en compte de l'onglet "Feuil2"
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
 
Dernière édition:

mercibien

XLDnaute Occasionnel
Re : Concaténer et trier les valeurs d'une colonne.

Bonjour,
Je dois créer un calculateur :
- Sur le premier onglet, les utilisateurs doivent pouvoir saisir des pourcentage :

Colonne A / Colonne B
Blé / 10%
Avoine /
Maïs / 50%
Colza / 20%
... ...

- J'ai besoin que sur un autre onglet, une cellule reprenne tous les champs de la colonne A (concaténer) pour lesquels une valeur à été saisie en colonne B. Il faudrait surtout que ces informations soient triées par ordre décroissant de pourcentage.
Exemple : Maïs, Colza, Blé.

J'espère que j'ai été clair, merci d'avance.

Xavier

Salut xdt03; salut hoerwind ; salut Robert ; Bonsoir tout le monde;
une solution de votre problème dans la pièce jointe.
et en plus le tableau de la feuille intitulée "tableau dynamique" est dynamique : autrement dit ; vous pouvez ajouter d'autre données à cette table et vous aurez les données désirées dans la feuille "les matières ordonnées" il suffit de copier la formule de al cellule A3 de la feuille "les matières ordonnées".
à essayer
bon courage
 

Pièces jointes

  • Classeur2.xls
    14.5 KB · Affichages: 177
  • Classeur2.xls
    14.5 KB · Affichages: 171
  • Classeur2.xls
    14.5 KB · Affichages: 172

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 134
Messages
2 116 613
Membres
112 811
dernier inscrit
shade1452