Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

hoerwind

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

Bonsoir, salut Robert,

Une approche par formule sous la pièce jointe (résultat en Feuil2)
 

Pièces jointes

  • TrierEtConcatener.xls
    13.5 KB · Affichages: 314

mercibien

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


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

xdt03

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

Bonjour,
Merci à tous les trois. Je pense que la solution de Hoerwind correspond à ce que je cherche sans passer par une macro.
Je vais essayé de l'adapter.
Merci encore.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…