Determiner un rang à partir de plusieurs données

Bonjour

Je chercher à définir des priorisations à partir de plusieurs données, dans le tableau excel- joint , je voudrait établir la règle suivante :

1/ Est prioritaire les collaborateurs éligibles, qui ont le temps de transport le plus important (cas des 120mn)

A temps de transport égal, seront priorisés, ceux avec enfant (priorité 1.1), puis ceux sans enfant en partant du plus âgé(priorité 1.2)

2/ puis avec un temps de transport immédiatement inférieur à ceux du point 1

A temps de transport égal, seront priorisés, ceux avec enfant (priorité 2.1), puis ceux sans enfant en partant du plus âgé(priorité 2.2)

3/Ainsi de suite.....

le tableau excel joint est un exemple, je ne peux pas transposer les données dans l'autre sens car dans le haut du tableau réel, il y a une multitude de critères qui permet d'identifier si le collaborateur est éligible ou non

En vous remerciant de votre aide

cdlt

Router

9test.xlsx (11.42 Ko)

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

22test-v1.xlsm (25.92 Ko)

Bonjour

merci pour la réponse, cependant, je peux ouvrir le fichier, j'ai activé les macro mais pas de résultat. en cliquant sur le bouton prioriser.

ai-je fait une fausse manip?

cdlt

Router

Bonjour

As-tu activer les macros ?

Bye !

oui bien sûr

C'est curieux.

Voici ce que j'obtiens :

Avant le clic j'ai :

capture 1

Après le clic :

capture 2

Et je te donne le code, à toutes fins utiles :

Option Explicit

Dim f As Worksheet
Dim dercol&, derln&

Sub Prioriser()

    Set f = ActiveSheet
    dercol = f.Cells(2, Columns.Count).End(xlToLeft).Column
    derln = f.Range("B" & Rows.Count).End(xlUp).Row
    Sheets.Add
    f.Range(f.Cells(2, 2), f.Cells(derln, dercol)).Copy
    Range("A1").PasteSpecial xlPasteValues, Transpose:=True
    Selection.Sort , key1:=Range("A12"), order1:=xlAscending, _
                key2:=Range("B2"), order2:=xlDescending, _
                key3:=Range("C2"), order3:=xlDescending, _
                Header:=xlYes
    Selection.Copy
    f.Range("B2").PasteSpecial xlPasteValues, Transpose:=True
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Range("A1").Select
End Sub

Bye !

merci, j'ai pu tester, par contre cela ne prend pas l'entête des lignes A B C D ... (en cible il s'agit du nom du collaborateur) . Les macro étaient bloquées chez nous suite à des paramétrage de sécurité interne (le servie informatique me l'a débloqué)

Merci encore

cela ne prend pas l'entête des lignes A B C D ...

Qu'à cela ne tienne !

Nouvelle version :

Bye !

6test-v2.xlsm (25.33 Ko)

MERCI , c'est génial !

Rechercher des sujets similaires à "determiner rang partir donnees"