Ci-dessous, nous examinerons un programme dans Excel VBA qui trouve la deuxième valeur la plus élevée.

Situation:

Find Second Highest Value in 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 la cellule. Une double variable que nous appelons highestValue, et une variable double que nous appelons secondHighestValue.

Dim rng As Range, cell As Range

Dim highestValue As Double, secondHighestValue As Double
  1. Nous initialisons l’objet Range RNG avec la plage sélectionnée et les deux variables doubles avec la valeur 0.

Set rng = Selection

highestValue = 0

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

'Find Highest Value

For Each cell In rng

Next cell

Note: RNG et cellules sont choisies au hasard ici, vous pouvez utiliser tous les noms.

N’oubliez pas de se référer à ces noms dans le reste de votre code. La ligne verte est un commentaire et n’est ajouté ici pour fournir des informations sur ce morceau de code.

  1. Nous vérifions chaque cellule dans cette gamme. Si elle est supérieure à highestValue, nous écrivons la valeur à la highestValue variable. Ajoutez la ligne de code suivant à la boucle.

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

Note: la première valeur est toujours supérieure à highestValue parce que la valeur de départ de highestValue est 0.

  1. En second lieu, nous voulons trouver la deuxième valeur la plus élevée. Nous ajoutons un autre pour chaque boucle suivante.

'Find Second Highest Value

For Each cell In rng

Next cell
  1. Nous vérifions chaque cellule de la plage sélectionnée à nouveau. Si elle est supérieure à secondHighestValue et inférieur à highestValue, nous écrivons la valeur à la secondHighestValue variable. Ajoutez la ligne de code suivant à la boucle.

If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value
  1. Enfin, nous présentons la deuxième valeur la plus élevée à l’aide d’un MsgBox.

MsgBox "Second Highest Value is " & secondHighestValue
  1. Placez votre macro dans un bouton de commande, sélectionnez les numéros, et cliquez sur le bouton de commande.

Résultat:

Find Second Highest Value Result