Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

VBA : Comment classer une liste de valeurs



Vous pouvez utiliser la syntaxe de base suivante pour classer une liste de valeurs dans Excel à l’aide de VBA :

Sub RankValues()
    Dim i As Integer

    For i = 2 To 11
    Range("C" & i) = WorksheetFunction.Rank(Range("B" & i), Range("B2:B11"), 0)
    Next i
End Sub

Cet exemple particulier classe les valeurs dans les cellules B2:B11 et affiche les classements dans les cellules C2:C11 .

Le dernier argument de 0 précise qu’il faut classer les valeurs par ordre croissant (la plus grande valeur reçoit un rang de 1, la deuxième plus grande valeur reçoit un rang de 2, etc.).

Pour classer les valeurs par ordre décroissant, remplacez simplement le 0 par 1 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment classer les valeurs à l’aide de VBA

Supposons que nous ayons la liste suivante de joueurs de basket-ball ainsi que leurs points marqués :

Supposons que nous souhaitions calculer le rang de chaque valeur dans la colonne des points.

Nous pouvons créer la macro suivante pour ce faire :

Sub RankValues()
    Dim i As Integer

    For i = 2 To 11
    Range("C" & i) = WorksheetFunction.Rank(Range("B" & i), Range("B2:B11"), 0)
    Next i
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Le classement de chaque valeur dans la colonne des points est affiché dans la colonne C.

Par exemple:

  • Le joueur H avec 41 points a la valeur de points la plus élevée, il reçoit donc le rang 1 .
  • Le joueur C avec 40 points a la deuxième valeur de points la plus élevée, il reçoit donc le rang 2 .

Et ainsi de suite.

Pour classer les valeurs dans la colonne des points par ordre décroissant, nous pouvons changer le dernier argument de la méthode Rank de 0 à 1 :

Sub RankValues()
    Dim i As Integer

    For i = 2 To 11
    Range("C" & i) = WorksheetFunction.Rank(Range("B" & i), Range("B2:B11"), 1)
    Next i
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Le classement de chaque valeur dans la colonne des points est affiché dans la colonne C.

Par exemple:

  • Le joueur I avec 11 points a la valeur de points la plus basse, il reçoit donc le rang 1 .
  • Le joueur E avec 13 points a la deuxième valeur de points la plus basse, il reçoit donc le rang 2 .

Et ainsi de suite.

Remarque : Vous pouvez trouver la documentation complète de la méthode VBA Rank ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment compter les cellules avec un texte spécifique
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *