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
1 K
Réponses
10
Affichages
472

Statistiques des forums

Discussions
312 864
Messages
2 093 003
Membres
105 593
dernier inscrit
Damien49