XL 2016 reclasser nombre cellule

perrmi

XLDnaute Occasionnel
Bonjour à tous et toute
meilleurs vœux pour 2020

Petit problème pour ...moi
J’ai un nombre dans une cellule
Ex ; 01259035
J’aimerai l'arranger en commençant par le plus petit chiffre
Conditions : éliminer les 0
Et garder tous les autres chiffres même les doublons
Ce qui doit donner :
123559.
Autre exemple : 832111109
Ce qui donne =11112389
Merci à vous.
 

M12

XLDnaute Accro
Bonjour,

Avec une fonction personnalisée à mettre dans un module
VB:
Function TriCell(pNum As String, Optional pOrder As Boolean) As String
  Application.Volatile
  Dim xOutput As String
  For i = 1 To 9
    For j = 1 To UBound(VBA.Split(pNum, i))
      xOutput = IIf(pOrder, i & xOutput, xOutput & i)
    Next
  Next
  TriCell = xOutput
End Function

formule = TriCell(A1;0) --> tri ascendant
formule = TriCell(A1;1) --> tri descendant
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Glané dans mes archives, une formule matricielle
(donc à valider avec CTRL+SHIFT puis ENTREE)
=1*TEXTE(SOMME(PETITE.VALEUR(--STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1);LIGNE(INDIRECT("1:"&NBCAR(A1))))*10^(NBCAR(A1)-LIGNE(INDIRECT("1:"&NBCAR(A1)))));REPT("0";NBCAR(A1)))
Si on saisit 54321 en A1, avec cette formule en B1, on aura: 12345
 

perrmi

XLDnaute Occasionnel
Bonjour le fil

Glané dans mes archives, une formule matricielle
(donc à valider avec CTRL+SHIFT puis ENTREE)
=1*TEXTE(SOMME(PETITE.VALEUR(--STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1);LIGNE(INDIRECT("1:"&NBCAR(A1))))*10^(NBCAR(A1)-LIGNE(INDIRECT("1:"&NBCAR(A1)))));REPT("0";NBCAR(A1)))
Si on saisit 54321 en A1, avec cette formule en B1, on aura: 12345
parfait pour moi
apres plusieurs essais cela fonctionne parfaitement meme sans formule matricielle
merci encore et bonne journée
 

Discussions similaires

Réponses
11
Affichages
785
Réponses
10
Affichages
599

Statistiques des forums

Discussions
314 022
Messages
2 104 732
Membres
109 113
dernier inscrit
younes mgh