/ / Trouver la deuxième valeur la plus élevée dans Excel VBA

Trouver la deuxième valeur la plus élevée dans Excel VBA

Ci-dessous, nous examinerons un programme en Excel VBA cette trouve la deuxième plus haute valeur.

Situation:

Trouver la deuxième valeur la plus élevée dans Excel VBA

1. Tout d'abord, nous déclarons deux objets Range et deux variables de type Double. Nous appelons les objets Range rng et cell. Une variable double appelée plus haute valeur et une variable double appelée deuxièmeVote.

Dim rng As Range, cell As Range
Dim highestValue As Double, secondHighestValue As Double

2. Nous initialisons l'objet Range rng avec la plage sélectionnée et les deux variables Double avec la valeur 0.

Set rng = Selection
highestValue = 0
secondHighestValue = 0

3. Nous voulons d’abord trouver la valeur la plus élevée. Nous voulons vérifier chaque cellule dans une plage sélectionnée au hasard (cette plage peut être de toute taille). Dans Excel VBA, vous pouvez utiliser la boucle For Each Next pour cela. Ajoutez les lignes de code suivantes:

"Find Highest Value
For Each cell In rng

Next cell

Remarque: rng et cellule sont choisis au hasard ici, vous pouvez utiliser n’importe quel nom. N'oubliez pas de faire référence à ces noms dans le reste de votre code. La ligne verte est un commentaire et est ajoutée ici uniquement pour fournir des informations sur ce code.

4. Nous vérifions chaque cellule de cette plage. Si sa valeur est supérieure à mostValue, nous écrivons la valeur dans la variable mostValue. Ajoutez la ligne de code suivante à la boucle.

If cell.Value > highestValue Then highestValue = cell.Value

Remarque: la première valeur est toujours supérieure à mostValue car la valeur de départ de mostValue est 0.

5. Deuxièmement, nous voulons trouver la deuxième plus haute valeur. Nous ajoutons une autre boucle For Each Next.

"Find Second Highest Value
For Each cell In rng

Next cell

6. Nous vérifions chaque cellule de la plage sélectionnée. S'il est supérieur à secondHighestValue et inférieur à mostValue, nous écrivons la valeur dans la variable secondHighestValue. Ajoutez la ligne de code suivante à la boucle.

If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value

7. Enfin, nous affichons la deuxième valeur la plus élevée à l'aide d'une MsgBox.

MsgBox "Second Highest Value is " & secondHighestValue

8. Placez votre macro dans un bouton de commande, sélectionnez les numéros et cliquez sur le bouton de commande.

Résultat:

Trouver le deuxième résultat le plus élevé

Lisez aussi: