Fonction équivalente de Grande.valeur mais pour du texte?

Bonjour,

J'ai un trou de mémoire

Quelle est la fonction équivalente à Grande.valeur mais pour ordonner des cellules contenant du texte (au lieu de cellules contenant des nombres)?

Merci

Bonjour,

Est-ce-que tu fais référence à NBCAR() ....???

non, je souhaite lister par ordre alphabétique une liste de cellules contenues dans une plage, comme la fonction grande.valeur le permet avec des cellules contenant des nombres

Re,

Je t'avoue ne pas vraiment comprendre ...

Si tu veux trier une colonne de textes dans l'ordre alphabétique... tu peux utiliser le Menu Excel pour faire un tri ... non ???

non, car il s'agit de permettre un tri dynamique qui évolue lorsque le contenu de la plage initiale change.

En gros, j'ai une plage A contenant X cellules avec du contenu alphanumérique qui évolue dans le temps

Et dans une plage B, je souhaite lister par odre alphabétique les cellules de la plage A.

La fonction grande.valeur permet de faire cela quand le contenu est consitué de nombres. Mais cela ne fonctionne pas avec du texte.

Re,

Tu disais dans ton premier message ... avoir un trou de mémoire ...

Je me demande donc si tu aurais oublié la formule matricielle qui permet de trier du texte alphabétiquement ...???

Pour référence ...

https://forum.excel-pratique.com/excel/tri-alphabetique-avec-une-formule-sans-vba-t59989.html

Bonjour le forum,

nicopat a écrit :

il s'agit de permettre un tri dynamique qui évolue lorsque le contenu de la plage initiale change.

Saisie des données et classement alphabétique en colonne A (à partir de A2) :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 And Target.Count = 1 Then
    nom = Target
    [A2:A1000].Sort key1:=[A2]
    [A2:A1000].Find(what:=nom).Select
  End If
End Sub

précision supplémentaire : je ne peux pas utiliser dans mon fichier ni formule matricielle ni utiliser une macro.

j'ai l'impression de devenir folle... il y a pourtant bien une fonction qui permet cela...

Re,

Pour nous permettre de mieux comprendre ton défi ... peux-tu joindre ton fichier ???

Bonjour à tous,

Je pense que les formules reprises ici pourront faire ton Bonheur.

Bonne journée,

Salut VBABeginner

Le défi est de trier alphabétiquement avec les contraintes citées par nicopat ...

précision supplémentaire : je ne peux pas utiliser dans mon fichier ni formule matricielle ni utiliser une macro

Ha pardon ... j'ai lu pour la macro mais pas formule matricielle ( étrange d'interdire cela non ? ) alors je m'excuse ! Ca sera peut-être utile un jour à qqn qui aura moins de contrainte.

Bonne journée,

ma problématique est exactement la même que celle indiquée sur ton lien mais je ne peux pas avoir recours à une formule matricielle.


les formules matricielles ralentissent trop le fonctionnement de mon fichier qui est volumineux.

Re,

Je suis pas trop fort en Excel mais en recherche je me débrouille un peu

Voici un exemple à l'aide d'une colonne intermédiaire ... 2 manières différentes d'y arriver.

Le seul hic c'est que c'est anti-alphabétique ( de Z à A ) ... Un expert en formule pourra peut-être faire en sorte que le résultat s'inverse... ( je sais faire mais il me faudra encore une colonne en plus ... je pense que c'est pas le but )

Bonne journée,

nicopat a écrit :

les formules matricielles ralentissent trop le fonctionnement de mon fichier qui est volumineux.

Entendu ... mais ... qu'est-ce-qui interdit l'utilisation du Menu Excel ... ou d'une macro évènementielle instantanée ???

Bonsoir,

>les formules matricielles ralentissent trop le fonctionnement de mon fichier qui est volumineux.

1- Ce n'est pas en décomposant une formule matricielle en plusieurs formules que la vitesse sera améliorée.

2- En écrivant une seule formule matricielle sur un champ et non pas dans une cellule et en la recopiant, on peut diviser le temps d'exécution par 10.

a/ La formule matricielle est écrite une seule fois dans un champ

http://boisgontierjacques.free.fr/fichiers/Matriciel/TriMat.xls

-Sélectionner D2:D1000

=INDEX(champ;EQUIV(GRANDE.VALEUR(NB.SI(champ;">="&champ);LIGNE(INDIRECT("1:"&LIGNES(champ))));NB.SI(champ;">="&champ);0))

-Valider avec Maj+ctrl+entrée

-Pour 1000 éléments: si on modifie une cellule, temps recalcul = 1sec au lieu de 10 sec

b/ La formule est écrite dans une cellule puis recopiée

=SI(LIGNES($1:1)<=NBVAL(champ);INDEX(champ;EQUIV(PETITE.VALEUR(NB.SI(champ;"<"&champ);LIGNES($1:1));NB.SI(champ;"<"&champ);0));"")

Valider avec Maj+ctrl+entrée

Pour 500 éléments: Si on modifie une cellule: temps recalcul >10 sec

http://boisgontierjacques.free.fr/fichiers/Matriciel/TriMat2.xls

c/Pour un tri très rapide d'un fichier volumineux , le mieux est d'utiliser une fonction perso.

Pour utiliser une fonction perso, il n'est pas nécessaire de connaître VBA.

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/FonctionListeTriee1.xls

d/Par macro

http://boisgontierjacques.free.fr/pages_site/evenements.htm#TriDyn

Ceuzin

Bonjour,

J'avoue être très curieux de la solution qui sera adoptée ... à la fin du processus ...!!!

Bonjour,

Ma proposition n'est pas matricielle, sans macro et fonctionne. Il faut juste des petits calculs intermédiaires mais ça marche !

Ou aurais je encore ( pour pas changer ) pas tout compris ?

Bonne journée,

122classement.xlsx (9.38 Ko)

Re,

C'est le verdict final de Nicopat ... qui permettra de "rétroactivement" comprendre la demande initiale " trou de mémoire "

je viens donc aussi de comprendre la demande !

mais à bien relire, la demande était claire quand même ...

en D2 on peut mettre

=INDIRECT("C"&NBVAL(C:C)-LIGNE()+2)

La paternité de la solution revient quand même à VBABEGINNER

Rechercher des sujets similaires à "fonction equivalente grande valeur texte"