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

Concatener et classer par ordre croissant

NoMercy

XLDnaute Nouveau
Bonjour

Pourriez vous m'aider afin de CONCATENER les colonnes B et A en colonne C, avec un tri croissant dans cette colonne C, tout ceci de façon automatique. Je joins à ma demande un exemple TEST.xlsx
D'avance merci.
 

Pièces jointes

  • TEST.xlsx
    9 KB · Affichages: 110
  • TEST.xlsx
    9 KB · Affichages: 116
  • TEST.xlsx
    9 KB · Affichages: 113

max.lander

XLDnaute Occasionnel
Re : Concatener et classer par ordre croissant

Salut,

une solution en PJ.

En espérant que cela te convienne!

@+
 

Pièces jointes

  • TEST.xlsx
    9 KB · Affichages: 141
  • TEST.xlsx
    9 KB · Affichages: 152
  • TEST.xlsx
    9 KB · Affichages: 158

david84

XLDnaute Barbatruc
Re : Concatener et classer par ordre croissant

Bonjour,
à tester sur une plage plus importante pour voir si cela fonctionne :
Code:
=INDEX(B$1:B$9&" "&A$1:A$9;DROITE(PETITE.VALEUR(NB.SI(B$1:B$9;"<"&B$1:B$9)+LIGNE(B$1:B$9)/1000;LIGNE());3))
Validation matricielle.
A+
 

ralph45

XLDnaute Impliqué
Re : Concatener et classer par ordre croissant

Bonjour tout le monde (ou devrai-je dire bonne nuit ?)

Un test avec le bouton "Go !" (voir PJ)...

A+
 

Pièces jointes

  • NOMERCY.xls
    32 KB · Affichages: 84

david84

XLDnaute Barbatruc
Re : Concatener et classer par ordre croissant

Bonjour,
par macro, une possibilité parmi d'autres :
Code:
Sub tri()
Dim T(), DerLig As Long
Application.ScreenUpdating = False
[C:C].ClearContents
DerLig = Range("B" & Rows.Count).End(xlUp).Row
T = Range("A1:B" & DerLig)
Range("A1:B" & DerLig).Sort Key1:=Range("B1"), Order1:=xlAscending, _
Key2:=Range("A1"), Order2:=xlAscending, Header:=xlGuess
For i = 1 To DerLig
Cells(i, 3).FormulaR1C1 = "=RC[-1]&"" ""&RC[-2]"
Next i
With Range("C1:C" & DerLig)
    .Copy
    .PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End With
With [A1]
    .Select
    .Resize(UBound(T), UBound(T, 2)) = T
End With
Application.ScreenUpdating = True
End Sub
A+
 

NoMercy

XLDnaute Nouveau
Re : Concatener et classer par ordre croissant

R@chid, peux tu me dire à quoi serve les {} dans les formules en colonne C.
Lorsque j'adapte ta formule à mon fichier, je supprime les {}, j'ai toujours une erreur #NOMBRE!
Y a t-il une formule cachée ou autre chose ?
Merci de ta réponse.
 

R@chid

XLDnaute Barbatruc
Re : Concatener et classer par ordre croissant

Bonjour,
Merci à tous pour vos réponses, en plus super rapides.
Je pense utiliser la solution de R@chid, merci beaucoup.
pour moi je voie que celle de notre Cher Ami David84 est la plus belle sans colonne Intermédiaire...

R@chid, peux tu me dire à quoi serve les {} dans les formules en colonne C.
Lorsque j'adapte ta formule à mon fichier, je supprime les {}, j'ai toujours une erreur #NOMBRE!
les {} apparaissent automatiquement après la validation Matricielle, c'est @ dire quand on valide par Ctrl+Maj+Entree Simultanément...

Pour l'erreur Nombre je pense qu'elle vient de PETITE.VALEUR(NB.SI(I$2:I$10;"<"&I$2:I$10);LIGNE()),
car moi j'ai mis la formule en C1 et donc la fonction LIGNE() renvoie dans ce cas 1 et peut être toi tu l'as mis dans une cellule où la ligne est supérieure au nombre de valeurs de la plage...
essayer de Remplacer LIGNE() par LIGNE(A1) ce que je n'aime pas faire pour des raisons pas facile de te les expliquer...
Attention la formule est Matricielle ==> @ valider par Ctrl+Maj+Entree
Amicalement
 

NoMercy

XLDnaute Nouveau
Re : Concatener et classer par ordre croissant

R@chid
Je suis encore novice en Excel, que ce soit ta formule ou celle de David, j'essaie de la comprendre et de l'adapter à mon fichier Excel mais l'erreur NOMBRE subsiste.
Ma colonne intermédiaire est en DG7G21 et l'affichage du resultat doit se faire en A20:A34.
Que dois je mettre dans LIGNE ou comment utiliser la formule de David que je comprends à demi ?
Merci de ta comprehension
 

R@chid

XLDnaute Barbatruc
Re : Concatener et classer par ordre croissant

Bonsoir,
en A20, (Pas Testé)
Code:
=INDEX(DG$7:DG$21;EQUIV(PETITE.VALEUR(NB.SI(DG$7:DG$21;"<"&DG$7:DG$21);LIGNES($20:20));NB.SI(DG$7:DG$21;"<"&DG$7:DG$21);0))
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ micalement
 

NoMercy

XLDnaute Nouveau
Re : Concatener et classer par ordre croissant

Merci Rachid, mais j'ai trouvé une solution entre temps.
Par contre je profite de tes compétences pour te demander une solution sur une formule quasi identique.
Je voudrais trier 3 colonnes, colonne C étant la référence, mais sans les concatener.
Je joins un nouveau fichier test.
A+
 

Pièces jointes

  • TEST.xlsx
    12.3 KB · Affichages: 69
  • TEST.xlsx
    12.3 KB · Affichages: 60
  • TEST.xlsx
    12.3 KB · Affichages: 72

R@chid

XLDnaute Barbatruc
Re : Concatener et classer par ordre croissant

Bonjour,
Une solution parmi d'autres...
J'attends plus d'explication si ça ne te convient pas ....
Amicalement
 

Pièces jointes

  • NoMercy_2.xlsx
    14.2 KB · Affichages: 61

NoMercy

XLDnaute Nouveau
Re : Concatener et classer par ordre croissant

Merci, vraiment toujours aussi parfait Rachid
J'en profite donc encore pour une autre question sur la fonction RECHERCHE (ou une variante RECHERCHEV...), afin de compiler les résultats de 2 tableaux. Peut-être faut-il utiliser d'autres fonctions ?
Ci joint un nouvel exemple
A+
 

Pièces jointes

  • TEST.xlsx
    12.9 KB · Affichages: 61
  • TEST.xlsx
    12.9 KB · Affichages: 90
  • TEST.xlsx
    12.9 KB · Affichages: 62

Discussions similaires

Réponses
12
Affichages
308
Réponses
7
Affichages
322
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…