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

XL 2021 Tri alphabétique dans une cellule

Baldur

XLDnaute Nouveau
Bonjour à tou.tes,

Question simple : avec une macro (pas une formule, je ne pense pas), comment trier le contenu d'une cellule par ordre alpha, svp ?

Exemple : on a

A1 Bonjour
A2 Merci
A3 Clafoutis

Et, après exécution de la macro, j'aimerai avoir en B1 BJNOORU, en B2 CEIMR et en C3 ACFILOSTU. Par exemple.

Merci, bon courage
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Dans un module standard :
VB:
Option Explicit
Function LettreClas(ByVal Don As String) As String
   Dim TNb(65 To 90) As Byte, A As Byte, P As Byte
   On Error Resume Next
   For P = 1 To Len(Don)
      A = Asc(UCase$(Mid$(Don, P, 1)))
      TNb(A) = TNb(A) + 1
      Next P
   On Error GoTo 0
   For A = 65 To 90
      LettreClas = LettreClas & String$(TNb(A), A)
      Next A
   End Function
En B1, à propager sur 3 lignes :
Code:
=LettreClas(A1)
Remarque: ne reconnait pas les lettres accentuées.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous ,

Méthode beaucoup plus basique :
VB:
Function LettreAZ(ByVal Don As String) As String
Dim t, i&, ech As Boolean, x
   If Don = "" Then Exit Function
   ReDim t(1 To Len(Don))
   For i = 1 To Len(Don): t(i) = UCase(Mid(Don, i, 1)): Next
   Do
      ech = False
      For i = 1 To UBound(t) - 1
         If t(i + 1) < t(i) Then ech = True: x = t(i): t(i) = t(i + 1): t(i + 1) = x
      Next i
   Loop Until Not ech
   LettreAZ = Join(t, "")
End Function
 

Discussions similaires

Réponses
31
Affichages
2 K
Réponses
10
Affichages
508
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…