Macro pour tri horizontal

Rikikiller

XLDnaute Junior
Bonjour le forum, bonjour à tous,

Je me permet de solliciter à nouveau vos connaissances pour trouver une solution à mon problème. Voilà : j'ai des données que je souhaite trier "à l'horizontal". J'ai essayé avec la procédure :

Données, Trier, Options, de la gauche vers la droite

mais elle ne correspond pas à mon besoin car cela tri toutes les colonnes alors que pour ma part, je souhaite que les données des colonnes "N°1, N°2, N°3 et N°4" restent liées aux données des colonnes "AD1, AD2, AD3 et AD4" auxquelles elles sont attachées. Afin de vous éclairer un peu sur mon objectif, j'ai préparé un fichier avec des données de départ et le résultat escompté.

Je vous remercie par avance de l'aide que vous pourrez m'apporter. Bonne journée à tous.

Rikikiller
 

Pièces jointes

  • Tri horizontal.xls
    17 KB · Affichages: 64

JCGL

XLDnaute Barbatruc
Re : Macro pour tri horizontal

Bonjour à tous,

Je n'ai pas compris la logique de tri...

"N°1, N°2, N°3 et N°4" restent liées aux données des colonnes "AD1, AD2, AD3 et AD4"

Peux-tu en dire un peu plus ?

A+ à tous
 

Rikikiller

XLDnaute Junior
Re : Macro pour tri horizontal

Bonjour JCGL,

Je vais tenter de préciser mon but : j'ai des Noms (colonnes AD*) et des Numéros (colonnes N°*). Ex : sur mon fichier de départ, le numéro de Jean-Pierre est le 115807, celui de Derby le 212635. Je cherche donc la solution pour trier à l'horizontale les données des colonnes AD* et que leur N°* suive le nouvel emplacement :
Ex : pour BREST, les données à prendre en compte pour le tri sont SCHREER (AD1), APOSTLE (AD2), MISHTALAR (AD3) et enfin LAKE (AD4). En les triant par ordre alpha, cela donne APOSTLE (AD1), LAKE (AD2), MISHTALAR (AD3) et enfin SCHREER (AD4). Il faut donc que leur numéro respectif se retrouve dans la colonne a coté de leur nouvel emplacement. J'espère que ces précisions aideront à la résolution de mon problème. Merci pour tout JCGL.

Rikikiller
 

JCGL

XLDnaute Barbatruc
Re : Macro pour tri horizontal

Bonjour à tous,

Un essai avec :

Code:
Option Explicit

Sub Tri()
Sheets("F1").Range("B1:J10").Copy
    Sheets("F2").Select
    Range("B1").Select
    ActiveSheet.Paste
    Range("D2,F2,H2,J2").Select
    Selection.EntireColumn.Delete
    Range("B1").Select
    Range("C3:F10").Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
    Sheets("F1").Select
     Range("C14:C21").Formula = "=IF('F2'!R[-11]C="""","""",'F2'!R[-11]C)"
       Range("E14:E21").Formula = "=IF('F2'!R[-11]C[-1]="""","""",'F2'!R[-11]C[-1])"
    Range("G14:G21").Formula = "=IF('F2'!R[-11]C[-2]="""","""",'F2'!R[-11]C[-2])"
       Range("I14:I21").Formula = "=IF('F2'!R[-11]C[-3]="""","""",'F2'!R[-11]C[-3])"
    Range("B12").Select
End Sub
J'utilise une feuille supplémentaire pour trier les prénoms et un SOMMEPROD() pour retourner les valeurs :
Code:
=SOMMEPROD(($B$3:$B$10=$B14)*($C$2:$J$2=C$13)*($E$3:$E$10=C14)*$F$3:$F$10)

Je n'ai pas poussé les tests...

A+ à tous
 

Pièces jointes

  • JC Tri Horizontal.xls
    37.5 KB · Affichages: 55

Rikikiller

XLDnaute Junior
Re : Macro pour tri horizontal

Bonjour Lii,

Ta solution est également interessante et présente pour moi un avantage certain c'est qu'elle semble, a priori, plus aisément compréhensible en raison de mon niveau. Quoiqu'il en soit, je la testerai également avec le fichier au complet comme celle de JCGL précédemment proposée et vous tiendrais au courant de celle retenue. Bonne journée et bon week-end.

Rikikiller
 

Rikikiller

XLDnaute Junior
Re : Macro pour tri horizontal

Re Lii, JCGL,

Effectivement, le résulatat n'est pas le même et celui de Lii correspond plus à ma recherche. J'ai "étudié" la V2 de Lii et si elle fonctionne tout aussi bien que la V1, je pense que la solution d'utiliser provisooirement des colonnes sur la même feuille sera plus pratiquie pour moi que d'écrire dans la feuil 2 car dans certains fichiers soit elle contient déjà des données soit elle a été renommée soit elle n'existe pas ! Toutefois Lii, peux tu m'expliquer comment tu fais pour dans l'exemple V2 joint, comment tu fais référence à la feuille 1 ? J'ai bien vu la référence à la feuille 2 (with Sheet 2) mais rien sur la feuille 1 ! Et là je ne comprends pas la subtilité. Alors ce serait sympa de ta part de me dévoiler ce qui est pour moi un mystère. D'avance merci et au plaisir de te lire.

Rikikiller
 

Lii

XLDnaute Impliqué
Re : Macro pour tri horizontal

Re,

Il n'y aucune subtilité. La feuil1 n'est pas citée parce que c'est la feuille active, celle qui contient le bouton.
Maintenant, il y a encore une autre possibilté : créer une feuille temporaire et la supprimer à la fin.
 

Pièces jointes

  • Tri horizontal1sur2(V3).zip
    8.2 KB · Affichages: 33
Dernière édition:

Rikikiller

XLDnaute Junior
Re : Macro pour tri horizontal

Re Lii,

Merci pour cette explication qui prouve une fois de plus s'il était besoin, mon niveau! La réponse à mon interrogation est tellemment évidente que j'en ai presque honte mais presque seulement ! En tout cas, ta V3 avec création temporaire m'interesse beaucoup et je pense qu'elle va emporter mon choix. Merci pour tout.

Rikikiller
 

Discussions similaires

Réponses
10
Affichages
456
Réponses
7
Affichages
342
Réponses
4
Affichages
642

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas