Tri croissant dans une cellule

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

Claude

XLDnaute Occasionnel
Bonjour le Forum,

Dans les cellules de A4 :A13 j’ai des valeurs affichées que je récupère toutes en
en désordre dans la cellule A16.
Comment faire avec une formule un tri croissant de ces valeurs dans la cellule A24 avec des espaces réguliers ?

Ci-joint le travail.

Merci de me renseigner.

Claude
 

Pièces jointes

Re : Tri croissant dans une cellule

Bonjour le forum 🙂

Bonjour Claude,

Ci-joint un petit essai, pas forcément très élégant mais qui peut peut-être te dépanner, en attendant que les Vbaistes passent par là .... 🙂

@ +

mth

Edit: Oups, pas rafraichi à temps.... bonjour Roland 🙂
Edit 2: Bonjour JP14, une belle leçon de vba 🙂, merci à toi 🙂
 

Pièces jointes

Dernière édition:
Re : Tri croissant dans une cellule

Bonjour

Ci joint le fichier avec une fonction personnalisée.

Principe
Suppression des espaces au début et en fin (Trim)
Un seul espace entre les données ( replace)
Recherche des valeurs pour les inscrire dans un tableau (mid)
Tri du tableau ou matrice colonne par permutation
Reconstitution du résultat

A tester

JP
 

Pièces jointes

Re : Tri croissant dans une cellule

Bonjour Roland M, mth, jp14, skoobi,

Merci de vous être penché sur mon problème.
J'ai un tout petit peu remanié avec la fonction SUPPRESPACE en A16
J'ai donc :
11 13 19 22 32 35 39 24 16 42
avec des espaces réguliers
qu'il faudrait trier en ordre croissant.

Dans les 2 cas de macro, jp14 et sckoobi, j'ai le message suivant :
"Erreur de compilation
sub ou fonction non définie "

Voici à nouveau le travail joint

Avec mes remerciements. Amicalement.

Claude
 

Pièces jointes

Re : Tri croissant dans une cellule

Bonjour,

Excel 2000+

Code:
Function TriCell(champ)
  For Each c In champ
    temp = temp & " " & c
  Next
  temp = Split(temp, " ")
  '----  tri
  For i = LBound(temp) To UBound(temp)
     For j = i To UBound(temp)
        If temp(j) < temp(i) Then
          temporary = temp(j)
          temp(j) = temp(i)
          temp(i) = temporary
        End If
     Next j
  Next i
  TriCell = Trim(Join(temp, " "))
End Function


JB
http://boisgontierjacques.free.fr
 

Pièces jointes

Dernière édition:
Re : Tri croissant dans une cellule

Re bonjour,

En l'absence de JB, je me permet de répondre.
Je suppose que tu as le message d'erreur sur ton fichier.
As-tu mis le code du fichier de BOISGONTIER dans un module comme dans l'exemple qu'il a joint?
Il s'agit d'une fonction personnalisée.
 
Re : Tri croissant dans une cellule

Salut à tous,
Bonsoir BOISGONTIER,

Je te remercie vivement d'être revenu sur mon problème.
Finalement, j'ai installé Office 2003.
Ta macro fonctionne bien dans l'exemple. Mais lorsque je l'adapte à mon travail elle fonctionne mal.
Par exemple dans mon travail l'opération doit s'effectuer en CL3:CL13
En CL7 j'ai 7 15 31
En CL13 j'ai 27 33
En CL16 j'ai 7 15 31 27 33
Résultat du tri de CL16 : 15 27 31 33 7 !!!
j'ai recopié ta macro dans un module.

Amicalement. Claude
 
- 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

Discussions similaires

Réponses
5
Affichages
314
Retour