Tri par ordre alphabétique au sein d'une même cellule

eramond

XLDnaute Junior
Bonjour

Je souhaite trier le contenue d'une cellule par ordre alphabétique, est ce possible?

Exemple si C2 contient:
Thierry
Bernard

Après la macro

C2 =
Bernard
Thierry


Merci
 
Dernière édition:

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

Et bien quand lance la procédure SUb test, le module 3 de la procédure Ajouter s'ouvre en m'indquant

"erreur de compilation SUb ou Funtion non définie"
Voir ci joint
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    83.5 KB · Affichages: 24
  • DATA-XX-XX-2015-XXX-DD.xlsm
    83.5 KB · Affichages: 34
  • DATA-XX-XX-2015-XXX-DD.xlsm
    83.5 KB · Affichages: 36

Dranreb

XLDnaute Barbatruc
Re : Tri par ordre alphabétique au sein d'une même cellule

Il manque le module de classe TableIndex
Et les procédures Ajouter et RésultatCellClassé doivent être dans le même module car elles travaillent sur la même table Te et le compteur de ligne Le qui doivent être déclarés en tête de ce module.
Reprenez toute la structure du poste #6 mais avec la nouvelle Function RésultatCellClassé du poste #15 qui élimine les doublons.
 
Dernière édition:

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

Merci alors j'ai rajouté les modules et mis le module ajouter dans le module RésultatCellClassé.

Par contre j'ai maintenant un Erreuc de compilation argument non facultatif dans la macro test.

Ceci pour Résultatcellclassé.
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.6 KB · Affichages: 30
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.6 KB · Affichages: 29
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.6 KB · Affichages: 23

Dranreb

XLDnaute Barbatruc
Re : Tri par ordre alphabétique au sein d'une même cellule

Il manque les déclarations globales de Te et Le en tête du Module12. Avec des variable locales dans chaque procédure ça ne va jamais marcher. Ce n'est pas la bonne version en fait.
Reprenez ça :
VB:
Option Explicit
Dim Te(1 To 500) As String, Le As Long  ' Variables globales module

Sub Ajouter(ByVal Z As String)
Le = Le + 1: Te(Le) = Z
End Sub

Function RésultatCellClassé() As String
Dim Ts() As String, Ls&, Texte As String ' Variables locales (volatiles)
ReDim Ts(0 To Le - 1): Ls = -1
With New TableIndex
   .Init 0, Le: While .Actif: .BInfA = Te(.B) < Te(.A): Wend
   Texte = ""
   .Parcourir: While .Actif: Le = .Suivant
      If Te(Le) <> Texte Then Texte = Te(Le): Ls = Ls + 1: Ts(Ls) = Texte
      Wend: End With
ReDim Preserve Ts(0 To Ls)
RésultatCellClassé = Join(Ts, vbLf)
Le = 0
End Function
 
Dernière édition:

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

[SUB][/SUB]Oui j'avais vu mon erreur, j'avais modifié merci.

Mais cela ne fonctione toujours pas malgré le nouveau code j'ai un souci ici

Code:
ReDim Ts(0 To Le - 1): Ls = -1
:confused:
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    94.9 KB · Affichages: 22
  • DATA-XX-XX-2015-XXX-DD.xlsm
    94.9 KB · Affichages: 25
  • DATA-XX-XX-2015-XXX-DD.xlsm
    94.9 KB · Affichages: 34
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Tri par ordre alphabétique au sein d'une même cellule

Reprenez le code joint poste précédent.
Te et Le ne doivent pas être déclarés dans la Function sinon ils supplantent les globales de sorte qu'elle ne les prend pas en compte.
 

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

Merci je viens de le faire, dois je donc déclarer Te et le dans le processus ajouter?

Car cela ne marche pas non plus.

Puis je ajouter en fin de module 2 un

application.calculation = xlautomatic juste avant le end sub afin de l'optimiser encore plus?
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.1 KB · Affichages: 30
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.1 KB · Affichages: 35
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95.1 KB · Affichages: 27
Dernière édition:

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

C'est bien ce que j'ai fait mais cela ne fonctione pas, il y a quelque chose qui m'échappe.


Est ce blocant que Te soit < 500 car je vais avoir beaucoup de lignes en colonne AG?
 

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

Toujours pareil plantage.

Je ne sais plus où mettre cette ligne

PHP:
Dim Te(1 To 500) As String, Le As Long  ' Variables globales module

JE l'ai mise en module 2

Mais je ne sais pas où la mettre en module 12 ?
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    95 KB · Affichages: 34
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95 KB · Affichages: 41
  • DATA-XX-XX-2015-XXX-DD.xlsm
    95 KB · Affichages: 40

eramond

XLDnaute Junior
Re : Tri par ordre alphabétique au sein d'une même cellule

Je l'ai fait mais cela ne fonctionne pas.
Toujours le même problème ici
PHP:
ReDim Ts(0 To Le - 1): Ls = -1
 

Pièces jointes

  • DATA-XX-XX-2015-XXX-DD.xlsm
    96.4 KB · Affichages: 34
  • DATA-XX-XX-2015-XXX-DD.xlsm
    96.4 KB · Affichages: 174
  • DATA-XX-XX-2015-XXX-DD.xlsm
    96.4 KB · Affichages: 190
Dernière édition:

Discussions similaires

Réponses
9
Affichages
276

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes