Etant un utilisateur Excel débutant et nouveau sur le forum, je ne suis pas certain que l’objet de la demande soit pertinent.
Cela fait plusieurs semaines que je cherche en vain à trier et filtrer des données issues de plusieurs plages de cellules.
Enfin, j’imagine que c’est la solution à mon problème ☹
J’ai essayé les fonctions TRIER ; FILTRE ; INDEX et EQUIV ; etc. sans réussir à faire ce que je souhaite.
Plutôt que de me lancer dans une grande explication « hasardeuse » , je joins le fichier Excel qui explique mon cas.
une solution par macro
le resultat est mis en colonne W==> suffit d'adapter le code pour mettre en colonne S
à noter: ton tri alpha n'est pas bon partout
Bonsoir Fredo, Vgendron, Simply,
Le VBA reste la meilleure solution.
Mais, just for the fun, une approche formule est possible mais vraiment indigeste.
Un premier tableau Tri ( à masquer ) avec simplement une concaténation : =C4&G4&K4&O4
Un second tableau avec :
VB:
Première colonne :
=INDEX(S$4:S$7;EQUIV(PETITE.VALEUR(NB.SI(S$4:S$7;"<"&S$4:S$7);LIGNE(1:1));NB.SI(S$4:S$7;"<"&S$4:S$7);0))
Validation par Maj+ctrl+Entrée car matriciel.
Autres colonnes :
=INDEX(T$4:T$7;EQUIV($X4;$S$4:$S$7;0))
A noter que dans le second tableau les cellules vides sont en premier car pour XL un vide est avant le "A"
une solution par macro
le resultat est mis en colonne W==> suffit d'adapter le code pour mettre en colonne S
à noter: ton tri alpha n'est pas bon partout
Merci Vgendron pour cette proposition de macro
Je regarde cela attentivement dans la semaine, mais il me semble que la macro tri bien la colonne S, mais que le filtre mélange les données en T,U, V
En tout cas encore merci, c'est une bonne piste
Bonsoir Fredo, Vgendron, Simply,
Le VBA reste la meilleure solution.
Mais, just for the fun, une approche formule est possible mais vraiment indigeste.
Un premier tableau Tri ( à masquer ) avec simplement une concaténation : =C4&G4&K4&O4
Un second tableau avec :
VB:
Première colonne :
=INDEX(S$4:S$7;EQUIV(PETITE.VALEUR(NB.SI(S$4:S$7;"<"&S$4:S$7);LIGNE(1:1));NB.SI(S$4:S$7;"<"&S$4:S$7);0))
Validation par Maj+ctrl+Entrée car matriciel.
Autres colonnes :
=INDEX(T$4:T$7;EQUIV($X4;$S$4:$S$7;0))
A noter que dans le second tableau les cellules vides sont en premier car pour XL un vide est avant le "A"
Bonsoir Sylvanu
La concaténation ne fonctionne que s'il y a une seule série de données par ligne. S'il y a plusieurs données sur une ligne cela ne fonctionne pas, ce qui pourra être le cas sur le tableau que je souhaite utiliser. Désolé je n'avais pas signalé ceci dans mon tableau test.
Mais, je te rejoins la VBA semble pertinente. Je vais aussi tester la proposition de Simply le week end prochain.
Je vous tiens informés.
Encore merci à tous les trois