Trouvez deuxième valeur la plus élevée dans Excel VBA
Ci-dessous, nous examinerons un programme dans Excel VBA qui trouve la deuxième valeur la plus élevée.
Situation:
-
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
-
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
-
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.
-
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.
-
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
-
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
-
Enfin, nous présentons la deuxième valeur la plus élevée à l’aide d’un MsgBox.
MsgBox "Second Highest Value is " & secondHighestValue
-
Placez votre macro dans un bouton de commande, sélectionnez les numéros, et cliquez sur le bouton de commande.
Résultat: