Microsoft 365 tri cellules

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

MICHAEL

XLDnaute Occasionnel
Bonjour,
lorsque dans une colonne composée de chiffres et de lettes j'applique un classement alphabetique les chiffres se situent
en haut de la colonne.
je souhaiterais que ceux ci se trouvent en bas et que l'ordre aphabetique des lettres soit en haut en respectant a,b,c,.....
merci de votre aide
 
dans ton commentaire j'en vois que deux.
Allez, dernière tentative, après j'abandonne :
TooFatBoy à dit:
Meuh nan ! Y va revenir et enfin nous donner un exemple avec une liste "avant" et la liste "après". 😉
Donc, en bon français, si vous nous donniez une liste "avant", par exemple :
7
5
d
1
a
h
b
puis une liste "après" traitement qui correspond au résultat que vous attendez, par exemple :
a
b
d
h
ou
a
b
d
h
1
5
7
ou
a
b
d
h
7
5
1
ou autre (au point où on en est) !
... on pourrait peut-être vous aider et, SURTOUT, ne pas perdre notre temps dans un multi-dialogue de sourds (enfin, surtout vous!).
C'est pour ça qu'on vous demande un fichier pour expliciter les attendus ou, au moins, une demande CLAIRE !!!
 
Bonjour à tous 🙂,

@MICHAEL adaptera à son classeur exemple non fourni😜.

  • Cliquer sur le bouton "Initialisation" pour remplir le tableau de valeurs aléatoires
  • Double-cliquer sur un en-tête de colonne pour trier selon cette colonne

Le code est dans le module de la feuille.
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Not Intersect(Target, Range("a1").ListObject.HeaderRowRange) Is Nothing Then
      Cancel = True
      trierLettreChiffre Range("a1").ListObject.ListColumns(Target.Value).Index
   End If
End Sub

Sub trierLettreChiffre(ByVal xn As Long)
Dim lsto As ListObject, nNum&, nAlpha&, tNum
   Set lsto = Range("a1").ListObject
   If Me.FilterMode Then Me.ShowAllData
   lsto.Range.Sort key1:=lsto.ListColumns(xn).Range(1, 1), order1:=xlAscending, Header:=xlYes, MatchCase:=False
   nNum = Application.Count(lsto.ListColumns(xn).Range): nAlpha = lsto.ListRows.Count - nNum
   tNum = lsto.DataBodyRange.Resize(nNum)
   lsto.DataBodyRange(1, 1).Resize(nAlpha, lsto.ListColumns.Count) = lsto.DataBodyRange.Offset(nNum).Resize(nAlpha).Value
   lsto.DataBodyRange.Offset(nAlpha).Resize(nNum) = tNum
End Sub
 

Pièces jointes

Allez, dernière tentative, après j'abandonne :

Donc, en bon français, si vous nous donniez une liste "avant", par exemple :
7
5
d
1
a
h
b
puis une liste "après" traitement qui correspond au résultat que vous attendez, par exemple :
a
b
d
h
ou
a
b
d
h
1
5
7
ou
a
b
d
h
7
5
1
ou autre (au point où on en est) !
... on pourrait peut-être vous aider et, SURTOUT, ne pas perdre notre temps dans un multi-dialogue de sourds (enfin, surtout vous!).
C'est pour ça qu'on vous demande un fichier pour expliciter les attendus ou, au moins, une demande CLAIRE !!!
a
b
d
h
1
5
7
 
a
b
d
h
1
5
7
Effectivement ça ne correspond pas du tout à #4.

Avant.png Apres.png


Sur ce, bon dimanche à tous.
Et bon courage à l'ami Gégé-45550
@+
 
Dernière édition:
- 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
7
Affichages
266
Réponses
3
Affichages
126
Réponses
6
Affichages
161
Réponses
30
Affichages
479
Réponses
4
Affichages
93
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
235
Retour