XL 2013 Classement automatique

RedHook

XLDnaute Nouveau
Bonjour,

J'aimerais créer un tableau comparatif automatique pour, par exemple, des offres d'entreprises.

J'ai réussi a créer le classement automatique avec la fonction RANG dans le tableau 1. Mais pour la suite, je n'arrive pas à trier automatiquement les résultats pour les avoir dans l'ordre croissant comme dans le tableau 2. Pouvez-vous m'aider svp ?

https://www.hostingpics.net/viewer.php?id=527179Capture.jpg
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    56.6 KB · Affichages: 39
  • classement automatique.xlsx
    10.2 KB · Affichages: 62

Modeste geedee

XLDnaute Barbatruc
Bonsour®
J'ai réussi a créer le classement automatique avec la fonction RANG dans le tableau 1. Mais pour la suite, je n'arrive pas à trier automatiquement les résultats pour les avoir dans l'ordre croissant
avec prise en compte des ex-æquo
upload_2017-8-14_21-23-27.png
 

Pièces jointes

  • classement automatique.xlsx
    15.8 KB · Affichages: 55

RedHook

XLDnaute Nouveau
Merci beaucoup, c'est exactement ce que je recherchais mais je constate quelque chose qu'il est peut-être possible de corriger. Toujours en se basant sur le même tableau, si par exemple, il n'y a que l'entreprise 1 et l'entreprise 2 avec des montants, les deux autres sont quand même prises en compte et le classement n'est pas optimal puisqu'il classe les entreprises 3 et 4 sans montants en début de classement. Il faudrait que les cellules contenant aucune donnée ou un 0 ne soient pas prises en considération. Est-ce possible ?

Je sais qu'il suffirait de supprimer les lignes (8 et 10 dans ce cas présent) mais si je supprime et que par la suite, une entreprise devait être ajoutée, je devrais alors à nouveau ajouter des formules, etc. ce que j'aimerais éviter.

https://www.hostingpics.net/viewer.php?id=786304Capture.png
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Il faudrait que les cellules contenant aucune donnée ou un 0 ne soient pas prises en considération. Est-ce possible ?

Je sais qu'il suffirait de supprimer les lignes (8 et 10 dans ce cas présent) mais si je supprime et que par la suite, une entreprise devait être ajoutée, je devrais alors à nouveau ajouter des formules, etc. ce que j'aimerais éviter.
Ce qu'il faut éviter, c'est comme dit précédemment : pas de lignes vides dans un tableau de données...

Il faudrait, il suffirait, je devrais, j'aimerais... :oops:

pour automatiser cela nécessite de l'organisation et de la rigueur....:rolleyes:
;) moyennant quelques réarrangements, nommage de plage dynamiques et gestion d'erreurs ::cool:
upload_2017-8-15_19-44-26.png
 

Pièces jointes

  • classement automatique (1).xlsx
    17.6 KB · Affichages: 38

RedHook

XLDnaute Nouveau
J'ai essayé de copier et d'adapter les fonctions dans un autre fichier Excel pour un classement automatique mais tout ce que j'arrive à faire, c'est retomber sur la première variante avec le classement des lignes vides en position 1 avec le 0 dans le prix.

Je vais donc rester sur la première option.

Merci quand même :)
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonsoir à tous

On peut aussi faire comme ça, mais c'est bien compliqué, à cause des lignes vides !!!

@ plus
;) et puis tu n'as pas traité les ex-aequo:eek:

on peut faire comme ceci aussi :rolleyes:
brute d'enregistreur:p
VB:
Sub Macro2()
'
' Macro2 Macro
Application.ScreenUpdating = False
    Columns("A:A").Select
    Selection.UnMerge
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "x"
    Range("A3:E14").Select
    Selection.Copy
    Range("N3").Select
    ActiveSheet.Paste
    ActiveWorkbook.Worksheets("Classement").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Classement").Sort.SortFields.Add Key:=Range( _
        "Q4:Q14"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Classement").Sort
        .SetRange Range("N3:R14")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A17:E25").Select
    Selection.ClearContents
    Range("N3:R14").Select
    Selection.Copy

    Range("A17").Select
    ActiveSheet.Paste
    Range("N:Q").Clear
End Sub
 

Discussions similaires

Réponses
4
Affichages
283

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma